多态:事物存在的多种形态
Animal a = new Cat(); //父类引用指向子类对象
a.eat(); //子类必须重写父类eat方法,才能多态调用
/* 多态的三个前提 1.继承(继承抽象类,接口都可以) 2.重写 3.父类引用指向子类对象 */
/* 多态中的 1.成员变量:编译看左边父类,运行看左边父类(Fu f) 2.成员方法:编译看左边父类,运行看右边子类(动态绑定) 3.静态成员方法:不存在覆盖一说,编译看左边,运行看左边只有非静态的成员方法,编译看左边,运行看右边。 */
多态成员变量
多态成员方法
多态类型转换
多态的好处:
- 提高了代码的维护性(继承保证)
- 提高了代码的扩展性(多态保证)
多态的弊端:不能使用子类的特有功能(父类没有子类的该方法和变量)