不同继承树的类也可以实现相同的接口
2013-08-16 16:18
239 查看
不同继承树的类也可以实现相同的接口
当你把一个类当作多态类型运用时,相同的类型必定来自同一个继承树,而且必须是该多态类型的子类。定义为Canine类型的参数可以接受Wolf与Dog,但无法忍受Cat或Hippo。更棒的是类可以实现多个接口!
通过继承结构,Dog对象IS-A Canine、IS-A Animal、IS-A Object的关系是成立的。但Dog IS-A Pet是通过接口实现的机制达成的,并同时也能够实现其他的接口:
public class Dog extends Animal implements Pet{…}
要如何判断应该是设计类、子类、抽象类或接口呢?
1.如果新的类无法对其他的类通过IS-A测试时,就设计不继承其他类的类。
2.只有在需要是类的特殊化版本时,以覆盖或增加新的方法类继承现有的类。
3.当你需要定义一群子类的模板,又不想让程序员初始化此模板时,设计出抽象的类给它们用。
4.如果想要定义出类可以扮演的角色,使用接口。
调用父类的方法
如果创建出一个具体的子类且必须要覆盖某个方法,但又需要执行父类的方法时要怎么办?也就是说不打算完全地覆盖掉原来的方法,只是要加入额外的动作要怎么做?super这个关键句能让你在子类中调用子类的方法。
super.runReport(); //super关键字是用来引用父类对象的
相关文章推荐
- 接口的定义——默认加public abstract默认全局常量;与继承不同,子类可以同时实现多个接口;抽象类实现接口;接口继承接口
- Static Nested Class 和 Inner Class的不同。Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- 抽象类可以实现接口,并且可以继承实体类
- Anonymous Inner Class (匿名内部类)是否可以继承其他类,是否可以实现接口?
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- java中的接口为什么可以多继承,而其他类则不能实现多继承
- 在java编程时,线程创建实现Runnable接口与继承Thread类的不同
- 牛客网Java刷题知识点之Java为什么不能支持多继承,但可以用接口来间接实现多继承
- 接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?
- 为什么Java语言中,类与类之间只能单根继承,类与接口可以多重实现,接口与接口却多根继承
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
- Objective C的可以多重继承么?可以实现多个接口么?
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
- Java中继承thread类与实现Runnable接口的不同之处
- 接口中的静态方法不能被实现类继承和子接口继承,但是接口中的非静态的默认方法可以被实现类继承。
- Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?
- 内部类大展身手 ———— 多个内部类以不同的方式实现同一个接口,或继承同一个类
- 匿名内部类是否可以继承其它类?是否可以实现接口? 代码讲解
- 第二,Anonymous Inner Class(匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?