不同继承树的类也可以实现相同的接口

本文探讨了面向对象设计的基本原则,包括何时使用类、子类、抽象类或接口,以及如何在子类中调用父类的方法等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不同继承树的类也可以实现相同的接口

当你把一个类当作多态类型运用时,相同的类型必定来自同一个继承树,而且必须是该多态类型的子类。定义为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关键字是用来引用父类对象的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值