1.多态的概念
多态性是指允许不同类的对象对同一消息作出响应。
2.多态产生的必要条件
(1)必须有父子继承关系:
public class Dog extends Animal{
}
(2)要有方法的重写(多态是方法的多态,属性不存在多态):子类重写父类方法。
(3)父类引用指向子类对象:
Animal animal = new Dog();
3.多态的特点:
编译看左侧引用,运行看右侧对象:
此处解释一下,编译看左边意思是程序编译报不报错看左侧父类中有没有该方法,所以如果是子类独有的方法不能构成多态,编制直接报错。运行看右侧对象指的是运行时最终调用的是右侧子类重写的方法。
4.多态的作用:
多态的作用我能想到的就一下几点:
(1)提高项目的可扩展性和可维护性:我的理解是用了多态后,如果子类对象换成了别的子类对象或者需要替换子类对象时可以直接修改右侧对象,别处代码不会报错,如果用的继承的话就得左边右边一起换,所有用到该对象的地方都得修改,很麻烦,这一点用的地方比较多相对。
(2)代码规范性:既然用了多态,如果用到子类对象的方法必然是重写的父类方法,可以在父类规定好有哪些方法,不允许使用子类独有的方法,这点主要是为了代码规范,这一点用的相对较少。
5.多态的经典使用例子
List list=new arrayList();
Map map=new HashMap<>();