Java instanceof和类型转换
Java instanceof和类型转换
- instanceof用于判断对象与对象之间是否有关系,具体看代码
类型转换:
-
父类引用指向子类的对象
-
把子类转换为父类,向上转型,自动转换(但是可能丢失自己本来的一些方法)
-
把父类转换为子类,向下转型,需要强制转换
示例:
package com.oop.demo06;
//父类
public class Person {
public void run(){
System.out.println("run");
}
}
package com.oop.demo06;
//子类1号
public class Students extends Person{
public void go(){
System.out.println("go");
}
}
package com.oop.demo06;
//子类2号
public class Teacher extends Person{
}
package com.oop;
import com.oop.demo06.Person;
import com.oop.demo06.Students;
import com.oop.demo06.Teacher;
//一个项目应该只存在一个main方法
//测试类
public class Application {
public static void main(String[] args) {
//父类引用指向了子类对象
Person students = new Students();
//Object>Person>Studens
//Object>Person>Teacher
//Object>String
System.out.println(students instanceof Students);//true
System.out.println(students instanceof Person);//true
System.out.println(students instanceof Object);//true
System.out.println(students instanceof Teacher);//false
//System.out.println(person instanceof String);//编译时就报错了,因为person和String没有任何关系
//子类转换为父类,可能丢失自己本来的一些方法
Students students1 = new Students();
students1.go();
Person person = students1;
//person.go();代码报错
students.run();
//将students这个对象转换为Students类型,就可以使用Students类型的方法了
((Students)students).go();//强制转换
/*
输出的结果为:true
true
true
false
go
run
go
*/
}
}

浙公网安备 33010602011771号