多态性,是面向对象中最重要的概念,在JAVA中有两种体现:
- 方法的重载(overload)和重写(overwrite)
- 对象的多态性--可以直接应用到抽象类和接口上
JAVA引用变量有两个类型:编译类型和运行类型 。编译时类型由声明该变量时使用的类型决定,运行时类型由实际付给该变量的对象决定。
若编译时类型和运行时类型不一样,就出现多态。
下面区别一下重载和重写
重载:本类中的同名方法,体现相同的名称方法实现不同的逻辑。
重写:子类对父类方法的覆盖,子类可以使用和父类相同的方法名,覆盖掉父类的逻辑。
父类的方法,想修改逻辑,但是有的代码在调用父类的方法,可以考虑用子类继承父类,重写弗雷德方法