天天看點

Java面向對象:多态

多态

動态編譯:類型:可擴充性

即同一方法可以根據發送對象的不同而采用多種不同的行為方式

一個對象的實際類型是确定的,但是可以 指向對象的引用 的 類型有很多

多态存在的條件

有繼承關系

子類重寫父類方法

父類引用指向子類對象 Father f1 = new Son();

注意事項:

多态是方法的多态,屬性沒有多态

父類和子類,有關聯,它們可以 類型轉換

不能夠 重寫,沒有多态的情況:

static 方法,屬于類,它不屬于執行個體。跟類一起加載的

final 方法,屬于常量池中的

private 方法,子類沒法重寫

instanceof

疑問:Person a = new Student(); 在記憶體中出現的是以什麼方式?為什麼對象 a 能調用Person的方法以及Student的重寫方法,卻不可以調用Student的獨有方法?