![]()
1 /*
2 向上转型一定是安全的,没有问题的,正确的。但是也有一个弊端:
3 对象一旦向上转型为父类,那么就无法调用子类原本特有的内容。
4
5 解决方案:用对象的向下转型【还原】。
6 */
7 public class Demo01Main {
8
9 public static void main(String[] args) {
10 // 对象的向上转型,就是:父类引用指向子类对象。
11 Animal animal = new Cat(); // 本来创建的时候是一只猫
12 animal.eat(); // 猫吃鱼
13
14 // animal.catchMouse(); // 错误写法!
15
16 // 向下转型,进行“还原”动作
17 Cat cat = (Cat) animal;
18 cat.catchMouse(); // 猫抓老鼠
19
20 // 下面是错误的向下转型
21 // 本来new的时候是一只猫,现在非要当做狗
22 // 错误写法!编译不会报错,但是运行会出现异常:
23 // java.lang.ClassCastException,类转换异常
24 Dog dog = (Dog) animal;
25 }
26
27 }