先有父类,再有子类---》继承
先有子类,再有父类---》泛化
多态:执行同一个方法,表现出不同的结果。
多个子类继承父类,都重写了父类的某个方法,实例化时,创建一个父类指向具体的子类的对象,调用父类的方法,不同的子类会产生不同的表现形式。
多态的要素:
1.继承
2.重写
3.父类引用指向子类的对象:
Dog d = new Dog();
Animal an = d;
也可以合成一句,写成:
Animal an = new Dog();
多态的好处:提高代码的扩展性,符合面向对象的设计原则:开闭原则。
开闭原则:扩展是开放的,修改是关闭的
示例:父类---Animal 子类---Cat、Dog、Pig
小女孩和动物玩,和不同的动物玩,新增具体的动物种类,父类动物指向改类即可,其他不用改动,提高了扩展性:
除了以上,多态还有其他应用场景,总结:
1.创建对象时,父类引用指向子类的对象
2.方法中的参数类型为父类,实际传参数值传子类的对象
3.方法的返回类型为父类,实际返回的是具体的子类的对象
4.创建对象时,接口引用指向实现类对象
5.方法中的参数类型为接口,实际传参数值传实现类的对象
6.方法的返回类型是接口,实际返回的是具体的实现类的对象
网友评论