Java多重继承为了充分理解如何解决Java的多重继承问题,我有一个需要澄清的经典问题。让我说我有课Animal它有子类Bird和Horse我需要上一堂课Pegasus从Bird和Horse自Pegasus是一只鸟和一匹马。我认为这是典型的钻石问题。据我所知,解决这个问题的经典方法是Animal, Bird和Horse类接口和实现Pegasus从他们那里。我想知道是否有另外一种方法可以解决我仍然可以为鸟类和马匹创造物体的问题。如果有一种方法也能创造动物,那将是伟大的,但不是必要的。
2 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
第一个是 继承
..正如您已经确定的那样,继承的局限性意味着您不能在这里做您需要的事情。 二是 构图
..由于继承失败,您需要使用组合。
鸟
延展 动物
实施器 IFIER
马
延展 动物
实施器 伊赫比沃尔
飞马
延展 动物
实施器 Iherbivore,IQuadrued,IFlier
IFlier
interface IFlier { Flier getFlier(); }
Bird
class Bird extends Animal implements IFlier { Flier flier = new Flier(); public Flier getFlier() { return flier; } }
Animal
组合的策略模式替代方法
Animal
Horse
Quadruped
Herbivore
添加回答
举报
0/150
提交
取消