instanceof关键字:

       它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。可以用来判断继承中的子类的实例是否为父类的实现。

一、判断其左边对象是否为其右边类的实例,返回boolean类型的数据

java 中 instanceof 关键字_关键字

理解:s instanceof Student :这个没问题   s 是Student的实现

           s instancdof Person :可以这样理解  ,既然Student是Person 的子类 所以在实例化 s时,会调用Person的构造方法,既然调用了构造方法那么就会有 Person实例 ,所以 s是Person的实例化对象

          同理 s instance of Object

二、可以用来判断继承中的子类的实例是否为父类的实现。

  java 中 instanceof 关键字_关键字_02

理解:“可以用来判断继承中的子类的实例是否为父类的实现”  意思就是父类的一个引用是用子类的实例对象来实现的,就是父类的引用指向子类的实例(其实就只有一个对象 两个引用)

      p instanceof Person :因为p 的实现是new 了一个Person  自然放回false

      p2 instanceof Student :以为p2获得的地址 是s给的,而s是Student的实例对象,所以p2就指向了 s所指向的Student的地址,所以 p2的实现用的子类的实例化对象  所以为 true  也可以做如下测试:

java 中 instanceof 关键字_java instaceof_03

可以发现 p2 和s 指向的是同一个对象  同一个Student 对象