java中的子类型

时间:2013-02-12 09:11:50

标签: java subtype

如果我有4种不同的Java类型(称为A B C D),AB的子类型,AC的子类型并且BD的子类型,C是[{1}}的子类型,这是合法的吗?那里有什么例子吗?

绘制图表:

D

所以D是超类型。 谢谢!

4 个答案:

答案 0 :(得分:6)

这与继承不合法,​​因为Java作为一种语言不支持多重继承。

但是,您可以通过实现多个接口来实现这一点,这与多重继承不同。

所以是的,这是可能的,并且你可以这样做,因为你可以检查某些东西是否是一个接口的实例,但这与一个类类型不一样,你的图表看起来有点不同于你画了。

答案 1 :(得分:1)

在java中,只有当D,C和B都是接口时,才会出现这种情况。这是合法的,也会奏效。示例 - 为实例Comparable实现两个接口的任何类。和Hashable。对象是这两个接口的共同祖先(虽然不是直接的)。

答案 2 :(得分:1)

  

这是合法的吗?

烨。 Java不支持使用类进行多重继承。只有多级。

因此,A不能同时从BC继承。

请参阅:Multiple Inheritance in javaHow do Java Interfaces simulate multiple inheritance?

答案 3 :(得分:0)

Java不支持多重继承。

为什么不呢?你可以看看here。您显示的继承层次结构是典型的钻石问题。