instanceof 运算符是否考虑兄弟 类 instance-ofs?
Does the instanceof operator consider sibling classes instance-ofs?
所以,如果我有四个 classes,A、B、C 和 D。类 B 和 C 扩展 class A 并且 class D 扩展 class C. 使用 Java 的 instanceof
运算符将 B instanceof C
return 为真,因为它们有相同的父代?
没有。他们是"siblings"。 类 C 和 B 都是 A 的实例,但它们不是彼此的实例。
以下测试正确
B instanceof A
C instanceof A
D instanceof C
注意以下是false
A instanceof B
A instanceof C
C instanceof D
子class是父的一个实例,而不是相反。那是因为父级不知道子级实现的新行为是什么,但是子级继承了父级的所有行为。
有关此主题的更多信息:Does instanceof return true if instance of a parent?
所以,如果我有四个 classes,A、B、C 和 D。类 B 和 C 扩展 class A 并且 class D 扩展 class C. 使用 Java 的 instanceof
运算符将 B instanceof C
return 为真,因为它们有相同的父代?
没有。他们是"siblings"。 类 C 和 B 都是 A 的实例,但它们不是彼此的实例。
以下测试正确
B instanceof A
C instanceof A
D instanceof C
注意以下是false
A instanceof B
A instanceof C
C instanceof D
子class是父的一个实例,而不是相反。那是因为父级不知道子级实现的新行为是什么,但是子级继承了父级的所有行为。
有关此主题的更多信息:Does instanceof return true if instance of a parent?