对象的上下转型

 

 

 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 }

 

posted @ 2020-11-15 17:10  Oooooooa  阅读(95)  评论(0)    收藏  举报