多态是继承,封装之后面向对象的第三大特性。
同一种行为具有不同的表现形式
前提
-1.继承或者实现(二选一)
-2.方法的重写(意义体现:不重写无意义);
-3.父类引用指向子类对象(格式体现);
体现
体现的格式
父类类型 变量名=new 子类对象;
父类类型:指子类对象继承父类类型,或者实现的父接口类型
Fu f=new ZiI();
f.method();
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误,如果有,执行的是子类重写后方法。
例
多态的好处
在实际开发的过程中,父类类型作为方法的形式参数,传递子类对象给方法,进行方法的调用,更能体现多态的拓展性与便利性
由于多态特性的支持,showAnimalEat方法的Animal类型,是Cat和Dog 的父类类型,父类类型接收子类对象,可以将Cat对象和Dog子类对象传递给方法。
当eat方法执行时,多态规定,执行的是子类重写的方法那么效果showCatEat与showDogEat方法一致。
不仅仅是替代,在扩展性方面,无论之后再多的子类出现,都可以使用父类show方法(showAnimalEat)完成
所以,多态的好处使程序编写简单,并有良好的扩展性