多态
動态編譯:類型:可擴充性
即同一方法可以根據發送對象的不同而采用多種不同的行為方式
一個對象的實際類型是确定的,但是可以 指向對象的引用 的 類型有很多
多态存在的條件
有繼承關系
子類重寫父類方法
父類引用指向子類對象 Father f1 = new Son();
注意事項:
多态是方法的多态,屬性沒有多态
父類和子類,有關聯,它們可以 類型轉換
不能夠 重寫,沒有多态的情況:
static 方法,屬于類,它不屬于執行個體。跟類一起加載的
final 方法,屬于常量池中的
private 方法,子類沒法重寫
instanceof
疑問:Person a = new Student(); 在記憶體中出現的是以什麼方式?為什麼對象 a 能調用Person的方法以及Student的重寫方法,卻不可以調用Student的獨有方法?