多态的弊端及如何解决

已知 多态

Animal a=new Cat();

成员变量编译运行都看左边

成员方法:编译看左边,运行看右边

静态方法:编译看左边(父类),运行看左边(父类)。
(静态和类相关,算不上重写,所以,访问还是左边的)

多态的弊端就是无法访问子类里特有的属性和方法

而如果想要用子类特有的属性和方法怎么办呢?

这时我们就把这个父类引用指向子类对象的a强制变回Cat类型

这样a就是cat类型引用了,指向的也是Cat对象了

这里就是 Cat ct =(Cat) a;

执行这个强制转换语句之后 a就指向最开始在堆内存中创建的那个Cat类型的对象了

posted @ 2021-05-09 16:33  王子剑  阅读(163)  评论(0编辑  收藏  举报