instanceof关键字和类型转换

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();//向下转型
    }
}

Guess you like

Origin blog.csdn.net/weixin_42226721/article/details/121466292