多态的弊端及如何解决
已知 多态
Animal a=new Cat();
成员变量编译运行都看左边
成员方法:编译看左边,运行看右边
静态方法:编译看左边(父类),运行看左边(父类)。
(静态和类相关,算不上重写,所以,访问还是左边的)
多态的弊端就是无法访问子类里特有的属性和方法
而如果想要用子类特有的属性和方法怎么办呢?
这时我们就把这个父类引用指向子类对象的a强制变回Cat类型
这样a就是cat类型引用了,指向的也是Cat对象了
这里就是 Cat ct =(Cat) a;
执行这个强制转换语句之后 a就指向最开始在堆内存中创建的那个Cat类型的对象了