繁体   English   中英

java中的子类型

[英]Subtypes in java

如果我有4种不同的Java类型(称为ABCD ), AB的子类型, AC的子类型, BD的子类型, CD的子类型,这是合法的吗? 那里有什么例子吗?

绘制图表:

           D
          | |  
        |     |
       B       C
        |     |
          | |
           A

所以D是超类型。 谢谢!

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

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

所以是的,你可以做到这一点,你可以检查某些东西是否是一个接口的实例,但这与类类型不同,你的图表看起来与你绘制的图形有点不同。

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

这合法吗?

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

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

请参阅: Java中的多重继承以及Java接口如何模拟多重继承?

Java不支持多重继承。

那么为何不? 你可以看看这里 您显示的继承层次结构是典型的钻石问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM