java中的向下转型

当我们构建一个父类引用指向子类对象的时候,该对象只能调用子类已经被重写的方法,而不能调用自己其他的方法,这时候就要用到向下转型

class Zi1 extends Fu1{
    @Override
    public void fun1() {
        System.out.println("李刚现在开始好好学习,天天向上!");
    }

    public void show1(){
        System.out.println("李刚现在没有睡觉...");
    }
}

class Demo1 extends Fu1{

}

public class DuoTaiDemo2 {
    public static void main(String[] args) {
        Fu1 z1=new Zi1();
        z1.fun1();
//        z1.show();没有转型前是调用不了的
        //向下转型的格式:
        //子类类名 变量名=(子类类名)要转型的变量名
        Zi1 f1=(Zi1)z1;
        f1.show1();  //通过向下转型就可以调用show1方法
    }
}
//并不是任意两个类型都可以进行向下转型,只有当实际内存对象与要转的对象类型一致时才可以
//        Demo1 d1=(Demo1) z1; 不行会报错,z1的对象类型是Zi1,而不是Demo1
posted @ 2024-09-25 15:06  你的镁偷走了我的锌  阅读(44)  评论(0)    收藏  举报