[英]Subtypes in java
如果我有4种不同的Java类型(称为ABCD
), A
是B
的子类型, A
是C
的子类型, B
是D
的子类型, C
是D
的子类型,这是合法的吗? 那里有什么例子吗?
绘制图表:
D
| |
| |
B C
| |
| |
A
所以D是超类型。 谢谢!
这与继承不合法,因为Java作为一种语言不支持多重继承。
但是,您可以通过实现多个接口来实现此目的,这与多重继承不同。
所以是的,你可以做到这一点,你可以检查某些东西是否是一个接口的实例,但这与类类型不同,你的图表看起来与你绘制的图形有点不同。
在java中,只有D,C和B都是接口时才会出现这种情况。 这是合法的,也会奏效。 示例 - 任何实现两个接口的类,例如Comparable
。 和Hashable
。 对象是这两个接口的共同祖先(虽然不是直接的)。
Java不支持多重继承。
那么为何不? 你可以看看这里 。 您显示的继承层次结构是典型的钻石问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.