多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。
多态实现条件:在Java中要实现多态,必须满足以下条件,缺一不可:
1.必须在继承体系下,发生向上转型
2.子类必须要对父类中方法进行重写
3.通过父类的引用调用重写的方法
1.重写(覆写/覆盖)
子类中重写父类的方法
2.向上转型
通过创建父类类型的引用变量接收实例化的子类对象( Animal animal = new Dog("旺财",2) )。该引用对象只能调用父类自己的属性与方法,只有调用已被子类重写的父类方法时才会调用到子类中的方法(动态绑定)
实际就是创建一个子类对象,将其当成父类对象来使用
3.动态绑定
完成上述的重写、向上转型,再通过父类引用去调用重写的方法,此时发生的行为就叫做动态绑定。
多态:在能够完成动态绑定的基础上。通过创建一个方法,引入不同的对象,此时不同的对象去完成该方法时,就会产生不同的状态,这就是多态。(同一个引用,同一个方法,引用的对象不一样,调用同一个方法,所表现的行为不一样)
多态的优点:
1.能够降低代码的“圈复杂度”,避免使用大量的if-else。
2.可拓展能力更强(而且看着更高级了)