Java概念继承破解?

时间:2016-04-07 14:33:08

标签: java

这是一个错误?

问题:我有4个课程VABCD

课程E需要扩展VABD,但如何?

Class A extends V{}
Class B extends A{} // this class extends A and V
Class D extends B{} // this class extends A , V and B

Class E extends D{} // Multiples

这是可能的,但这是正确的吗?我知道Java没有多重继承。

2 个答案:

答案 0 :(得分:1)

在您的示例中,ED的孩子,传递也是BA和{{1}的后代}。这是完全合法的并且在Java中受支持。但这是多重继承。

Java不支持类的多重继承的事实是一种不同的情况:你不能直接扩展多个类,例如:以下是Java支持 vclass E extends D, B

Java允许实现多个接口,并允许接口的多重继承,即允许以下内容:

class Child extends ParentA, ParentB

答案 1 :(得分:0)

E考虑到您的代码示例,确实扩展了VABD

我不确定你的问题的重点,你是否暗示你不希望它不是一个长链继承?

您可以考虑将VABD作为接口实施。 然后你可以这样做:

class E implements V, A, B, D