學習筆記 多型

2021-07-26 02:38:17 字數 1153 閱讀 9287

1、物件的靜態型別:物件在宣告時採用的型別。是在編譯期確定的。

2、物件的動態型別:目前所指物件的型別。是在執行期決定的。

3、靜態繫結(前期繫結):在程式執行前已經被繫結,物件的屬性使用的是靜態繫結。

4、動態繫結(後期繫結):在執行時根據具體物件的型別進行繫結,物件的方法一般都屬於動態繫結。

(static和final修飾的方法為靜態繫結)

(private修飾的方法會被編譯器認為是final型別的,因為它無法被子類繼承並重寫)

物件的動態型別可以更改,但是靜態型別無法更改;

father f =new son();
含義:建立了乙個son物件,並把得到的引用立即賦值給father

f的靜態型別為father,f的動態型別為son;

此時的f無法訪問father中的私有屬性和方法

class

father

class

sonextends

father

由於屬性是靜態繫結的,f的靜態型別為father,所以f.name尋找的是father中的name;

而age屬性在father中不存在,所以f.age將報錯

class

father

}class

sonextends

father

}

由於方法是動態繫結的,f的動態型別為son,所以f.a()將呼叫son的方法

class

father

}class

sonextends

father

}

由於靜態方法是靜態繫結的,f的靜態型別為father,所以f.a()將呼叫father的方法

最後再來看乙個例子

class

father

}class

sonextends

father

}

由於私有方法在編譯器中會被預設為final型別,故為靜態繫結,f的靜態型別為father,所以f.a()將呼叫father的方法。(ps:此時son中的a方法是乙個全新的方法)

多型學習筆記

多型 定義 某一類事物的多種存在形態。例 動物裡的貓,狗。貓這個物件對應的型別是貓型別 貓x new 貓 同時貓也是動物中的一種,也可以把貓稱為動物。動物 y new 貓 動物是貓和狗具體事物中抽取出來的父型別。父型別引用指向了子類物件。物件的向上轉型 animal a newdog 物件的向下轉型...

學習筆記 多型

多型注意事項 多型是方法的多型,屬性沒有多型 父類和子類 有聯絡 轉換型別異常 需要有繼承條件,方法需要重寫,父類引用指向子類物件!father f1 new son static 方法,屬於類,它不屬於例項 final 常量,不可改變 private 私有的 總結 乙個物件的實際型別是確定的,但可...

多型學習筆記

多型是同乙個行為具有多個不同表現形式或形態的能力。多型就是同乙個介面,使用不同的例項而執行不同操作。簡單理解起來就是同一名字的方法在不同物件裡會用不同的實現。舉個栗子實現多型 照著鬼滅編的 這是父類,賦予兩個屬性,建立乙個方法 public class demonslayer 封裝 public s...