8.15 对象向下转型

发布时间 2023-06-08 10:59:27作者: 盘思动

demo1

  • 在向下转型之前,必须先向上转型
class Person {
    public void run(){
        System.out.println("run.....");
    }
}

class Superman extends Person {
    public void fly(){
        System.out.println("超音速飞....");
    }
    public void fire(){
        System.out.println("喷火");
    }
}

public class HelloWorld {
    public static void main(String args[]){
        System.out.println("-------正常状态下的超人是个普通人----------------");
        Person per = new Superman();// 超人是个人,向上转型;
        per.run();

        System.out.println("--------外星入侵,准备消灭地球----------------");
        // Person是父类只拥有父类的方法,如果要想调用子类的特殊方法,则必须强制转为子类实例;
        Superman spm = (Superman)per;// 强制转为子类实例--向下转型;
        spm.fly();//子类扩充方法
        spm.fire();


    }
}