instanceof (类型转换) 引用类型,判断一个对象是什么类型
public class Person { public void run(){ System.out.println("run"); } }
public class Student extends Person{ }
public class Teacher extends Person{ }
public class Application { 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);//False System.out.println(object instanceof String);//False 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);//False // 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);//编译器报错 } }
强制转换
public class Person { public void run(){ System.out.println("run"); } }
public class Student extends Person{ public void go(){ System.out.println("go"); } }
public class Application { public static void main(String[] args) { //类型之间的转换: 父 子 //高 低 Person obj = new Student(); //student将这个对象转换为Student类型,我们就可以使用Student类型的方法了 ((Student)obj).go(); } }
注意:子类转换为父类,可能丢失自己本来的一些方法
1.把子类转换为父类,向上转型;
2.把父类转换为子类,向下转型;