我理解多态定义上就是要通过统一、抽象的形式去完成复杂多变的需求
x.invoke();
x是不同的,但是属于一个派生系
invoke形式是相同的,但实现不同
具体定位到哪个实现是由x的本质决定的
这对jvm来说x是什么是非常清楚的 动态加载、动态绑定
代码都在那了
?
附段非常精彩的摘自csdn的形象比喻:
?
老大要收xxx,对三个小弟说,给我去跟某某某收xxx(这就是一个借口,定义收xxx方法)
三个小弟A,B,C听到了之后采取不同的行动,
A:打电话过去威胁说不换就XXX(这就是具体的实现)恐吓
B: 直接带家伙杀到他家楼下等(这也是实现)威逼
C:直接面谈,说换1W返回1百,下次再借,利率打折(这也是实现)利诱
相同的动作对不同的类有不同的实现方法,这就是多态。
?