1.instanceof
instanceof关键字判断对象是什么类型,是否有继承关系。
public class Demo01 {
public static void main(String[] args) {
//instanceof,判断对象是什么类型
//Object > Person > Teacher
//Object > Person > Student
Object s1 = new Student();
System.out.println(s1 instanceof Student);//true
System.out.println(s1 instanceof Person);//true
System.out.println(s1 instanceof Object);//true
System.out.println(s1 instanceof Teacher);//false
}
}
2.类型转换
(1)向上转型:父类引用指向子类对象
Person p = new Student();
(2)向下转型
子类型 对象名 = (子类型)父类引用;
public class Person {
public void speak(){
System.out.println("人说话");
}
}
public class Student extends Person {
@Override
public void speak() {
System.out.println("学生回答问题");
}
public void study(){
System.out.println("学生学习");
}
}
public class Demo02 {
public static void main(String[] args) {
//向上转型
Person p = new Student();
//向下转型
Student s = (Student)p;
s.speak();
s.study();
p.speak();
((Student) p).study();//向下转型
}
}