所謂多型,是指不同類物件對同一訊息作出的響應不同。
多型實現的三個條件:
1、繼承
2、重寫
3、父類引用指向子類物件(也就是物件向上轉型 person p=new student(); )
場景如下,person類有habite方法,person類的子類student類和teacher類重寫了habite方法。現在需要在另外乙個類的方法show()裡面呼叫habite()方法並進行一些處理,但是不知道呼叫的物件的是具體哪個子類的,我們可以對show方法進行過載,將兩個不同型別的子類分別作為引數,但是這樣做得壞處就是不利程式的擴充套件,而且過載兩個方法會增加**量。因為在show方法做得處理都是相同的,只是物件引數不同而已。因此,我們可以通過物件的上轉型特點,只用乙個方法處理不同的子類物件引數。**如下:
首先建立person類,student類,teacher。
public class person}
public class student extends person}
public class teacher extends person測試類:}
public class testperson執行結果如下:public static void show(person person)
}
老師的愛好是喝茶
學生的愛好是籃球
比如現在來了新需求,我需要在show方法中執行乙個子類特有的方法,這個時候只需要對引數進行向下轉型(可以根據incetanceof關鍵字判斷例項 )就可以完成修改。
**如下:
public class testperson執行結果:public static void show(person person) else if (person instanceof student)
}}
老師的愛好是喝茶
老師學生的愛好是籃球
學生
java的多型總結
老畢的 編譯看左邊,執行看右邊 多型執行 對物件導向語言中理解多型 繼承很有幫助 在多型中,非靜態成員函式的特點 編譯看左邊,執行看右邊。老畢在講到多型執行問題時,結合下面的例子,給我們總結了一套口訣 成員變數,靜態方法看左邊 非靜態方法 編譯看左邊,執行看右邊。意思是 當父類變數引用子類物件時 f...
java 多型總結
多型 01 父類的引用指向自己子類的多型 02 多型的存在提高了程式的擴充套件性 03 多型的前提 必須是類與類之間有關係 要麼繼承要麼實現 還有就是存在覆蓋 04 子類向上轉型 和父類向下轉型 instanceof abstract class animal class car extends a...
java多型總結
簡單的說就是父類引用指向子類物件.一種方法,多種實現.規則 成員變數 編譯看左邊 父類 執行看左邊 父類 成員方法 編譯看左邊 父類 執行看右邊 子類,動態繫結 public class polymorphic 成員變數 編譯看左邊 父類 執行看左邊 父類 成員方法 編譯看左邊 父類 執行看右邊 子...