Java 如何将基类对象指定给父类引用?
假设我们有一个基类和一个父类,分别命名为Java 如何将基类对象指定给父类引用?,java,inheritance,parent-child,Java,Inheritance,Parent Child,假设我们有一个基类和一个父类,分别命名为Child和parent Parent b = new Child(); System.out.println(b instanceof Child);// prints true. System.out.println(b instanceof Parent);//prints true. 那么,为什么这两条语句的结果都是真的呢?instanceof检查对象的动态类型的关系“是” Animal a = new Dog() //Dynamic type
Child
和parent
Parent b = new Child();
System.out.println(b instanceof Child);// prints true.
System.out.println(b instanceof Parent);//prints true.
那么,为什么这两条语句的结果都是真的呢?
instanceof
检查对象的动态类型的关系“是”
Animal a = new Dog() //Dynamic type of a is Dog
d instanceof Animal // TRUE
因为狗是一种动物
因此,instanceof
查看动物的分支,发现狗是动物的孩子,因此返回true
然而:
a instance of Dog // FALSE
因为动物不一定是狗
结论:
X instanceof Y
,要实现这一点,Y必须是X的父级或同一分支中的相同类型的Xinstanceof
检查对象的动态类型的关系“是”
Animal a = new Dog() //Dynamic type of a is Dog
d instanceof Animal // TRUE
因为狗是一种动物
因此,instanceof
查看动物的分支,发现狗是动物的孩子,因此返回true
然而:
a instance of Dog // FALSE
因为动物不一定是狗
结论:
X是Y的实例
,要做到这一点,Y必须是X的父项或同一分支中的相同类型的X如果B类扩展了a类,那么B是a。例如,圆是一个形状
能够像引用父类一样引用实例是面向对象语言的要求之一
参见如果B类扩展了A类,则B是A。例如,圆是一种形状 能够像引用父类一样引用实例是面向对象语言的要求之一
请参见操作符的
实例将对象与指定类型进行比较。您可以使用它来测试对象是类的实例、子类的实例还是实现特定接口的类的实例
阅读更多
注意:使用instanceof
运算符时,请记住null
不是任何对象的实例
例如:
String name = null;
System.out.println((name instanceof String)); // prints false
你可能会感兴趣
instanceof
操作符将对象与指定类型进行比较。您可以使用它来测试对象是类的实例、子类的实例还是实现特定接口的类的实例
阅读更多
注意:使用instanceof
运算符时,请记住null
不是任何对象的实例
例如:
String name = null;
System.out.println((name instanceof String)); // prints false
你可能会感兴趣
因为BASE也是父级,因为它扩展了类。code>Base
is-aParent
@JonSkeet抱歉,我很困惑,如果您能提供我一些书面参考,我会很高兴……来了解这只狗。所以狗是一种动物。这是一个关系,因为BASE也是一个父级,因为它扩展了类。code>Baseis-aParent
@JonSkeet抱歉,我很困惑,如果您能提供我一些书面参考,我会很高兴……来了解这只狗。所以狗是一种动物。instanceof测试这是一种关系。