当我们构建一个父类引用指向子类对象的时候,该对象只能调用子类已经被重写的方法,而不能调用自己其他的方法,这时候就要用到向下转型
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
标签:java,Zi1,子类,转型,public,Demo1,向下,z1
From: https://www.cnblogs.com/ndmtzwdx/p/18431399