概述
面向对线的四个基本特征:抽象,封装,基础,多态。抽象,封装,继承是多态的基础,多态是抽象,封装,继承的表现
什么是多态
不同的对象对同一输入做出不同的响应
多态存在条件
- 有继承关系
- 子类重写父类方法
- 父类引用子类对象
修饰符对于多态的影响
private修饰的方法无法实现多态,因为方法无法被外部调用
protected和默认修饰符,如果子类父类在同一包下,可以实现多态,不同包则不行
static修饰的方法无法实现多态,因为父类静态方法无法被子类覆盖
final修饰的方法无法实现多态,因为父类fianl方法无法被子类覆盖
多态的好处
低耦合,可替代,可拓展
自己的一些思考
多态仅仅只针对继承吗?我觉得应该还要包括实现,无论是继承一个类,还是实现一个接口,都能体现出多态。拿springboot的mvc举例,往往我们需要先书写一个接口,在写一个实现类,最后autoware自动装载一个接口。当我们对实现类进行改造时,完全不用修改使用到接口的地方的代码。这就是一种多态,也体现了使用多态的好处
People people = new Student();
people.xxx;
多态使用格式一般如上,注意的地方是,要多态的方法,必须在父类里面声明,并且能被父类对象所引用,调用方法后,如果子类对象实现了此方法,则调用子类方法,如果子类对象没有实现此方法,则使用父类方法
想我所见,思我说闻
写我所想,写我所思
不求处处皆对
只求问心无愧








网友评论