instanceof关键字:
它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。可以用来判断继承中的子类的实例是否为父类的实现。
一、判断其左边对象是否为其右边类的实例,返回boolean类型的数据
理解:s instanceof Student :这个没问题 s 是Student的实现
s instancdof Person :可以这样理解 ,既然Student是Person 的子类 所以在实例化 s时,会调用Person的构造方法,既然调用了构造方法那么就会有 Person实例 ,所以 s是Person的实例化对象
同理 s instance of Object
二、可以用来判断继承中的子类的实例是否为父类的实现。
理解:“可以用来判断继承中的子类的实例是否为父类的实现” 意思就是父类的一个引用是用子类的实例对象来实现的,就是父类的引用指向子类的实例(其实就只有一个对象 两个引用)
p instanceof Person :因为p 的实现是new 了一个Person 自然放回false
p2 instanceof Student :以为p2获得的地址 是s给的,而s是Student的实例对象,所以p2就指向了 s所指向的Student的地址,所以 p2的实现用的子类的实例化对象 所以为 true 也可以做如下测试:
可以发现 p2 和s 指向的是同一个对象 同一个Student 对象