instanceof和类型转换

package base.oop.demo01.demo06;
public class Demo01 {
public static void main(String[] args) {
//object>string
//object>person>teacher
//object>person>student
Object object = new Student();
//System.out.println(X instanceof Y);能不能编译通过
System.out.println(object instanceof Student);//true
System.out.println(object instanceof Person);//true
System.out.println(object instanceof Object);//true
System.out.println(object instanceof Teacher);//flase
System.out.println(object instanceof String);//flase
System.out.println("==================================");
Person person = new Student();
System.out.println(person instanceof Student);//true
System.out.println(person instanceof Person);//true
System.out.println(person instanceof Object);//true
System.out.println(person instanceof Teacher);//flase
// System.out.println(person instanceof String);//编译报错
System.out.println("=======================");
Student student = new Student();
System.out.println(student instanceof Student);//true
System.out.println(student instanceof Person);//true
System.out.println(student instanceof Object);//true
//System.out.println(student instanceof Teacher);//报错
//System.out.println(student instanceof String);//报错
}
}
package base.oop.demo01.demo06;
public class Person {
public void run(){
System.out.println("run");
}
}
package base.oop.demo01.demo06;
public class Student extends Person {
public void go(){
System.out.println("go");
}
}
package base.oop.demo01.demo06;
public class Teacher extends Person {
}

浙公网安备 33010602011771号