instanceof (类型转换)
public class Person {
}
public class Student extends Person{
}
public class Application {
public static void main(String[] args) {
//建的类是关系
//Object->String
// Object->Person->Student
//Object->Person->Teacher
Object object=new Student();
System.out.println(object instanceof Student);//判断object是否是Student类 //true
System.out.println(object instanceof Person);//判断object是否是Person类 //true
System.out.println(object instanceof Object);//判断object是否是Object类 //true
System.out.println(object instanceof Teacher);//判断object是否是Teacher类 //false
System.out.println(object instanceof String);//判断object是否是String类 //false
System.out.println("=========================");
Person person=new Student();
System.out.println(person instanceof Student);//判断object是否是Student类 //true
System.out.println(person instanceof Person);//判断object是否是Person类 //true
System.out.println(person instanceof Object);//判断object是否是Object类 //true
//System.out.println(person instanceof Teacher);//判断object是否是Teacher类 //false
System.out.println("=============");
Student student=new Student();
System.out.println(student instanceof Student);//判断object是否是Student类 //true
System.out.println(student instanceof Person);//判断object是否是Person类 //true
System.out.println(student instanceof Object);//判断object是否是Object类 //true
//System.out.println(student instanceof Teacher);//判断object是否是Teacher类 //编译报错
}
}
类型转换:
1.父类的引用指向子类的对象。
2.子类转换父类,向上转换,自动转换。
3.父类转换为子类,向下转换,强制转换。
4.方便方法的调用,减少重复的代码
父类
public class Person {
}
子类
public class Student extends Person{
public void go(){
System.out.println("go");
}
}
测试类
public class Application {//代码可以自己尝试实现
public static void main(String[] args) {
//类型之间的转换
//父类->子类(高->低) 强制转换
//子类->父类(低->高) 自动转换
Person a=new Student();//从高到低强制转换
//a.go();Person使用Student的方法,将这个Person类型转换成Student类型,我们就可以使用Student类型的方法了。
//Student student=(Student) a;//转换了类型
//student.go();
//也可以写成
((Student) a).go();//强制转换
//子类转换为父类的时候,子类可能丢失一些方法。
//Person person=student;
}
}