Java多重继承
为了完全理解如何解决Java的多重继承问题,我有一个经典的问题需要澄清。
可以说我有类Animal
此有子类Bird
和Horse
我需要做一个类Pegasus
,从扩展Bird
和Horse
自Pegasus
既是一只鸟和一匹马。
我认为这是经典的钻石问题。从我能理解经典的方式来解决,这是使Animal
,Bird
和Horse
类接口,并实现Pegasus
从他们。
我想知道是否还有另一种方法可以解决仍然可以为鸟和马创建对象的问题。如果有一种能够创造动物的方法,那也很棒,但不是必须的。
回答:
你可以为动物类(生物学意义上的类),例如public interface Equidae
马和public interface 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 {}
以上是 Java多重继承 的全部内容, 来源链接: utcz.com/qa/400946.html