解决java多继承问题

首先:

java中的接口之间可以多继承,也可以多实现。

但是java中的类只能实现单继承,但可以多实现。

 

为了完全理解如何解决Java的多重继承问题,有一个经典的问题需要描述如下:

有类动物,它有子类鸟和马,现在需要制作一个从飞鸟和马延伸的类Pegasus,因为飞马座既是鸟又是马。

解决这个问题的经典方法是制作Animal,Bird和Horse类接口并从中实现Pegasus。

 

现在,换种方式:

为动物类创建接口,例如用于马的公共接口Equidae和用于鸟类的公共接口Avialae

public class Bird implements Avialae {
}




public class Horse implements Equidae {}




public class Pegasus implements Avialae, Equidae {}

 

另一种方式:

为了减少重复代码,也可以创建一个抽象类,其中包含需要实现的动物的大多数常用代码。

public abstract class AbstractHorse implements Equidae {}




public class Horse extends AbstractHorse {}




public class Pegasus extends AbstractHorse implements Avialae {}

 

总结:我建议绕过接口的“多继承”问题,不建议使用代表已经具体类型的接口(如Bird)。使用接口构造继承层次结构,在有用时使用抽象类,在需要时实现具体类,并在适当时使用委托。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页