如果我有 4 种不同的 Java 类型(称它们为A B C D
),并且A
是和 的子类型,并且是 的子类型,并且是B
的子类型,这合法吗?有没有例子?A
C
B
D
C
D
绘制图表:
D
| |
| |
B C
| |
| |
A
所以 D 是超类型。谢谢!
这对于继承是不合法的,因为 Java 作为一种语言不支持多重继承。
但是,您可以通过实现多个接口来做到这一点,这与多重继承不同。
因此,是的,您可以这样做,只要您可以检查某物是否是接口的实例,但这与类类型不同,并且您的图表看起来与您绘制的图表略有不同。
在 java 中,只有当 D、C 和 B 都是接口时才会出现这种图。这是合法的,并且会起作用。一个例子——例如任何实现两个接口的类Comparable
。和Hashable
。Object 是这两个接口的共同祖先(尽管不是直接的)。
Java 不支持多重继承。
那么为何不?你可以看看这里。您显示的继承层次结构是典型的菱形问题。