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