当我们构建一个父类引用指向子类对象的时候,该对象只能调用子类已经被重写的方法,而不能调用自己其他的方法,这时候就要用到向下转型
class Zi1 extends Fu1{@Overridepublic 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