一、多态
1、多态
概念:
多态是指同一种行为具有不同的表现形式,同一方法根据不同对象具有不同的行为方式。
特点:
①存在同名成员变量时,访问的是父类的成员变量
②存在同名的非静态成员方法时,访问的是子类重写的方法
③存在同名的静态成员方法时,访问的是父类重写的方法
④不能访问子类扩展的方法
2、多态的形式和体现
①多态引用
格式:父类类型 变量名 = 子类对象(调用:变量名. 方法名)
(父类类型:指子类继承的父类类型,或者实现的父接口类型。)
所以说继承是多态的前提。
②多态引用的表现
多态成员方法:编译时类型与运行时类型不一致,编译时看 “父类” ,运行时看 “子类” 。
③多态引用的好处坏处
坏处:编译时,只能调用父类声明的方法,不能调用子类扩展的方法;
好处:运行时,看“子类”,如果子类重写了方法,一定是执行子类重写的方法体;变量引用的子类对象不同,执行的方法就不同,从而实现动态的绑定。代码编写更灵活、功能更强大,可维护性和扩展性就更好。
3、应用多态解决问题
① 声明变量是父类类型,变量赋值子类对象
-
方法的形参是父类类型,调用方法的实参是子类对象
-
实例变量声明父类类型,实际存储的是子类对象