多型:
編譯階段:編譯期間編譯器可以根據選擇引數的型別來選擇使用哪個方法,是因為方法已經通過方法的過載
在同乙個類
裡提前寫好。(程式在編譯時,會在編譯型別中檢查是否具有所呼叫的方法。如果編寫**時,使用引用變數呼叫子類中的特有方法,或者呼叫過載了父類中的方法,而父類中找不到該方法,則會報編譯錯誤)
執行階段:執行時,根據輸入引數物件的型別(例如,a或者b的例項)來決定呼叫不同子類的方法(多個
類的方法重寫
)。多型:在程式執行階段,呼叫同乙個方法,會根據傳進的引數型別不一樣,找到相對應的不同子類來執行,從產生不一樣的結果。即一種方法對應多種形態稱為多型。
多型的好處:不管領養多少不同種類寵物,無需修改主人類的源**,實現了**的重用。
多型的實現的三大前提條件:繼承、重寫、自動轉型(用父類的引用接收子類的物件)。
多型的兩種
實現形式:
繼承和介面。
ps:與方法不同的是,物件的屬性則不具備多型性
。通過引用變數來訪問其包含的例項屬性時,
系統總是試圖訪問它
編譯時類
所定義的屬性,而不是它執行時所定義的屬性
。參考文章:
&&
介面:
為什麼使用介面?
介面幹了兩件事:一是介面統一了一套規範;二是介面表示了一種能力(像usb介面一樣,插上就能用)。
介面和抽象類的區別,啥時候用抽象類?啥時候用介面
?當你關注乙個事物的本質的時候,用抽象類; 當你關注乙個共有操作的時候,用介面。
Java介面 繼承 多型
介面是為了解決多繼承問題 修飾符 inte ce 介面名 extends 父介面名列表 注意 修飾符可預設,父介面名列表可省略,但是一旦寫了extends就不能省略 與類相同介面檔名與介面相同 介面可以繼承 介面名稱前面有大寫l 實現介面 修飾符 class 類名 extends 父類名 imple...
介面,繼承與多型
1,多型和介面的作用 多型機制的使用可以動態調整物件的呼叫,降低物件之間的依存關係 介面被用來建立類與類之間關聯的標準 2,super關鍵字的作用 用super 呼叫父類的構造方法,super 關鍵字呼叫父類的成員變數和方法 3,重寫,重寫可以選擇擴大方法的修飾許可權 4,當例項化乙個子類物件時,父...
java介面 繼承 多型
在建構函式中,如果第一行沒有寫super 編譯器會自動插入 需要注意的是子類不是一定要初始化父類,但當父類沒有無引數的建構函式時或者無引數建構函式為private時,需要手動呼叫有引數的建構函式 在obect類中主要包括equals tostring clone finalize方法 常用的方法 g...