java 为什么要设计抽象类 感觉有个继承就可以了
同样是子类继承父类一个父类设计成抽象类和普通的类有什么区别反而觉得父类是抽象类子类得实现父类所有方法是不是对多态有所局限性...
同样是子类继承父类 一个父类设计成抽象类和普通的类有什么区别
反而觉得父类是抽象类 子类得实现父类所有方法 是不是对多态有所局限性 展开
反而觉得父类是抽象类 子类得实现父类所有方法 是不是对多态有所局限性 展开
1个回答
展开全部
有一些方法不方便在父类实现,只有真正的实体类才好实现,,抽象类就可以定义成抽象方法,让其它子类来实现,,比如:一个父类--动物类,有一个生育的方法,如果在这个生育方法就实现了“通过下蛋去生育下一代”,那如果是野猪的话,这个动物类就不适合继承了;如果定义成抽象方法,让真正的实体类去实现,那这个父类就灵活多了,只要有动物的属性都能继承和实现自己的特有属性,这不是更好吗?
追问
我直接定义一个生育的方法 方法体为空不就行了么 抽象类只不过是声明一个方法名而已 方法体同样在子类中去实现
追答
你这个说法确实可行,但从代码的规范角度来看就显得不太优雅了,首先,定义了一个方法然后方法体为空,有点怪异;其次,如果我希望继承动物类的子类一定要实现的这个生育方法呢?这时抽象方法的用处就出来了(子类是必须要重写或实现父类的抽象方法的),这就是对子类的一种规范,,普通方法不手动重写的话就还是一个空实现,,,,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询