Java核心 介面 繼承和多型 多型

2021-08-20 00:10:21 字數 1027 閱讀 8284

利用多型可以使程式具有良好的擴充套件性,並可以對所有類物件進行通用的處理。

eg :定義乙個平行四邊形的類 parallelogram ,在類中頂乙個 draw() 方法。

public class parallelogram

}

如果需要頂乙個繪製正方形的方法,通過定義乙個正方形類來處理正方形物件,會出現**冗餘的缺點;通過定義乙個正方形和平行四邊形的綜合類,分別處理正方形和平行四邊形物件,也沒有太大意義。

如果定義乙個四邊形類,讓它處理所有繼承該類的物件,根據「向上轉型」原則可以使每個繼承四邊形類的物件作為 draw() 方法的引數,然後在 draw() 方法中做一些限定就可以根據不同圖形類物件繪製相應的圖形,從而以更為通用的四邊形類來取代具有的正方形類和平行四邊形類。這樣處理能夠很好地解決**冗餘問題,同時也易於維護,因為可以加入任何繼承父類的子類物件,而杜磊方法也無須修改。

eg :建立 quadrangle 類,在分別建立兩個內部類 square 和 parallelogramgle ,它們都繼承了 quadrangle 類。編寫 draw() 方法,該方法接收 quadrangle 類的物件作為引數,即使用這兩個內部類的父類作為方法引數。在主方法中分別以兩個內部類的例項物件作為引數執行 draw() 方法。

public class quadrangle

}public static void main(string args)

}class square extends quadrangle

}class parallelogramgle extends quadrangle

}

執行結果為 :

正方形

0平行四邊形

1

以不同類物件為引數呼叫 draw() 方法可以處理不同的圖形問題。使用多型節省了開發和維護時間,因為程式設計師無須再所有的子類中定義執行相同功能的方法,避免了大量重複**的開發,同時只要例項化乙個繼承父類的子類物件即可呼叫相應的方法,這裡只要維護父類中的這個方法即可。

Java介面 繼承 多型

介面是為了解決多繼承問題 修飾符 inte ce 介面名 extends 父介面名列表 注意 修飾符可預設,父介面名列表可省略,但是一旦寫了extends就不能省略 與類相同介面檔名與介面相同 介面可以繼承 介面名稱前面有大寫l 實現介面 修飾符 class 類名 extends 父類名 imple...

java介面 繼承 多型

在建構函式中,如果第一行沒有寫super 編譯器會自動插入 需要注意的是子類不是一定要初始化父類,但當父類沒有無引數的建構函式時或者無引數建構函式為private時,需要手動呼叫有引數的建構函式 在obect類中主要包括equals tostring clone finalize方法 常用的方法 g...

繼承 多型 介面

多型 編譯階段 編譯期間編譯器可以根據選擇引數的型別來選擇使用哪個方法,是因為方法已經通過方法的過載 在同乙個類 裡提前寫好。程式在編譯時,會在編譯型別中檢查是否具有所呼叫的方法。如果編寫 時,使用引用變數呼叫子類中的特有方法,或者呼叫過載了父類中的方法,而父類中找不到該方法,則會報編譯錯誤 執行階...