java对象的向下转型

向上转型一定是安全的,没有问题的,正确的。但是也有一个弊端:
对象一旦向上转型为父类,那么就无法调用子类原本特有的内容。
解决方案:用对象的向下转型【还原】。
格式 :
子类类型 子类对象名 = (子类类型)父类对象
1 2 3 4 5 6 7
| package cn.itcast.day10.demo06;
public abstract class Animal {
public abstract void eat();
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| package cn.itcast.day10.demo06;
public class Cat extends Animal { @Override public void eat() { System.out.println("猫吃鱼"); }
public void catchMouse() { System.out.println("猫抓老鼠"); } }
|
1 2 3 4 5 6 7 8 9 10 11 12
| package cn.itcast.day10.demo06;
public class Dog extends Animal { @Override public void eat() { System.out.println("狗吃SHIT"); }
public void watchHouse() { System.out.println("狗看家"); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package cn.itcast.day10.demo06;
public class Demo01Main {
public static void main(String[] args) { Animal animal = new Cat(); animal.eat();
Cat cat = (Cat) animal; cat.catchMouse();
Dog dog = (Dog) animal; }
}
|