多态是面向对象天空中国丽多彩的礼花,提升了对象的扩展能力和运行时的丰富想象力。
我们来明确两个非常容易混淆的概念 override 和 overload,
override 译成“覆写”,是子类实现接口,或者继承父类时,保持方法签名完全相同,实现不同的方法体,是垂直方向上行为的不同实现。
"overload 译成“重载”,方法名称是相同的,但是参数类型或参数个数是不相同的,是水平方向上行为的不同实现。
多态是指在编译层面无法确定最终调用的方法体,以覆写为基础来实现面向对象特性,在运行期由JVM进行动态绑定,调用合适的覆写方法体来执行。重载是编译期确定方法调用,属于静态绑定,本质上重载的结果是完全不同的方法,所以本书认为多态专指覆写。