多态: 顾名思义就是多种表现状态
最直观的理解:
- 有对象名称,用对象名称打点调用方法
- 在不同的时候执行的方法的功能是不一样的.
*多态的判断标准:
- 跨类且继承,多态是以继承作为基础的
- 子类重写长辈的方法
- 子类对象赋值给长辈的引用
比如:
CommonPerson cp=new Student();
Person p=new Student();
Object obj=new Student(); - 用长辈的引用打点调用方法
- 用对象打点能调用出哪些方法,取决于这个对象所对应的类或接口中的有哪些方法
- 如果用长辈的引用打点调用的方法,是重写过的方法,那么就执行子类重写后的方法.
- 如果长辈的引用打点调用个方法是没有重写的方法,则执行的是本长辈中的方法
能够表达出多态的应用场景:
1.以长辈作为方法或函数的参数(控制类:一般含有抽象类的所有方法)
2.以长辈作为方法或函数的返回值(简单共场)
如果不用多态:
- 代码的书写量大
- 结构不优化
- 代码的复用率不高(复用率低)
- 最终导致开发效率低
- 优点,代码的可读性很高
如果使用多态:
- 把所有的共用属性抽象出来放在长