物件導向三大特徵:封裝性,繼承性,多型性
extends繼承或者implements實現,是多型的前提。
馬雲是乙個人,同時乙個老闆。既有人的形態,又有老闆的形態,擁有多種形態,這就是物件的多型性。
**當中體現多型性,就是一句話:父類引用指向子類物件
格式:父類名稱 物件名 = new 子類名稱();
介面名稱 物件名 = new 實現類名稱();
訪問成員變數的兩種方式:
1.直接通過物件名稱訪問成員變數:看等號左邊是誰,優先用誰,沒有則向上找。
2.間接通過成員方法訪問成員變數:看該方法屬於誰,優先用誰,沒有則向上找。
多型中,訪問成員方法的規則:看new 的物件是誰,優先用誰,沒有則向上找。
口訣:編譯看左邊,執行看右邊。成員變數不符合這個口訣。
對比一下:
成員變數:編譯看左邊,執行還看左邊。
成員方法:編譯看左邊,執行看右邊。
1.物件的向上轉型,其實就是多型的寫法:父類名稱指向子類物件。
格式:父類名稱 物件名 = new 子類名稱();
含義:右側建立乙個子類物件,把它當作父類來看待使用。
注意事項:向上轉型是安全,從小範圍轉向大範圍。
2.物件的向下轉型,其實是乙個還原的動作。
格式:子類名稱 物件名 = (子類名稱)父類物件;
含義:將父類物件還原成本來的子類物件。
注意事項:
a.必須保證物件本來建立的時候,就是貓,向下轉型的時候才能是貓。
b.如果物件建立的時候是狗,向下轉型成為貓,就會報錯。classcastexception異常。
類似於:基本型別的強轉。
物件 instanceof 類名稱 ,這會得到乙個boolean值結果,也就是判斷前面的物件能不能當做後面型別的例項。
物件導向 多型
繼承是多型的基礎,是指物件的多種形態 1.引用的多型 1 父類的引用可以指向本類的物件 2 父類的引用可以指向子類的物件 注意 子類的引用不能指向父類的物件 2.方法的多型 1 建立本類物件時,呼叫的方法是本類的方法 2 建立子類物件時,呼叫的方法是子類重寫的方法或是繼承的方法 注意 如果是子類獨有...
物件導向 多型
多型可以簡單的概括為 乙個介面,多種方法 在程式執行過程中才決定呼叫的函式,簡單的說就是,允許將子類型別的指標賦值給父類型別的指標,賦值後,父類物件就可以根據當前賦給它的子類物件的特徵以不同的方式執行。容易混淆的兩個概念 是指允許存在多個同名的函式,而這些函式的參數列不同 或許引數個數不同,或許引數...
物件導向 多型
多型 可以理解為事物存在的多種體現形態。人 男人,女人 動物 貓,狗。貓 x new 貓 動物 x new 貓 1,多型的體現 父類的引用指向了自己的子類物件。父類的引用也可以接收自己的子類物件。2,多型的前提 必須是類與類之間有關係。要麼繼承,要麼實現。通常還有乙個前提 存在覆蓋。3,多型的好處 ...