解决 java 多继承问题
java 中的接口之间可以多继承,也可以多实现。
但是 java 中的类只能实现单继承,但可以多实现。
为了完全理解如何解决 Java 的多重继承问题,有一个经典的问题需要描述如下:
有类动物,它有子类鸟和马,现在需要制作一个从飞鸟和马延伸的类 Pegasus,因为飞马座既是鸟又是马。
解决这个问题的经典方法是制作 Animal,Bird 和 Horse 类接口并从中实现 Pegasus。
现在,换种方式:
为动物类创建接口,例如用于马的公共接口 Equidae 和用于鸟类的公共接口 Avialae
另一种方式:
为了减少重复代码,也可以创建一个抽象类,其中包含需要实现的动物的大多数常用代码。
总结:我建议绕过接口的“多继承”问题,不建议使用代表已经具体类型的接口(如 Bird)。使用接口构造继承层次结构,在有用时使用抽象类,在需要时实现具体类,并在适当时使用委托。
评论