instanceof和类型转换
public class People {
public void run(){
System.out.println("run");
}
}
public class Student extends People{
public void go(){
System.out.println("go");
}
}
public class Teacher extends People{
}
public class Application {
public static void main(String[] args) {
//Object > String
//Object > People >Teacher
//Object > People > Student
Object object = new Student();
System.out.println(object instanceof Student);//true
System.out.println(object instanceof People);//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("====================================");
People people = new Student();
System.out.println(people instanceof Student);//true
System.out.println(people instanceof People);//true
System.out.println(people instanceof Object);//true
System.out.println(people instanceof Teacher);//false
// System.out.println(people instanceof String);//编译报错!
System.out.println("=====================================");
Student student = new Student();
System.out.println(student instanceof Student);//true
System.out.println(student instanceof People);//true
System.out.println(student instanceof Object);//true
//System.out.println(student instanceof Teacher);//编译报错!
//System.out.println(student instanceof String);//编译报错!
}
}
public class Application {
public static void main(String[] args) {
//类型之间的转化: 父 子
//高 低
People obj = new Student();
//如果obj将People类型转化为Student类型,我们就可以使用Student类型的方法了!
((Student)obj).go();
//子类转换为父类,可能丢失自己的本来的一些方法!
//低 高
Student student = new Student();
student.go();
People people = student;
//people.go();
}
}
总结:
1.父类引用指向子类的对象
2.把子类转换为父类,向上转型;
3.把父类转换为子类,向下转型;强行转换
4.方便方法的调用,减少重复的代码!

浙公网安备 33010602011771号