Java中的多态

多态的前提和体现:

1.有继承/实现关系
2.有方法重写【不必要,但是我们开发中99%的情况使用多态就是为了使用重写后的方法,如果不重写,则使用成员全都是父类,何必使用多态】
3.有父类的引用指向子类对象

多态的成员特点:


多态中除了重写的方法调用子类的,其他所有成员都是使用父类中的,父类没有这些成员则编译报错。

多态的优劣,如何弥补劣势?

好处:

提高了代码的扩展性

弊端:

父类的引用不能使用子类特有成员

//向下转型:大范围的内容Animal转成小范围Cat的内容,解决了多态的弊端
Animal a = new Cat();
Cat c = (Cat)a;//正确,把父类引用向下赋值给子类引用
Dog d = (Dog)a//运行报错:a是只猫,扩大到了Animal,但是强行转成狗就是错误的。
//和强制类型中基本类型转换基本一样
double d = 3.14
int e = (int)d;//3

//向上转型,就是多态。子类对象向上赋值给父类的引用
Animal a = new Cat();

原文地址:https://www.cnblogs.com/maomaodesu/p/11837408.html