多型 instanceof關鍵字

2021-10-07 17:16:10 字數 904 閱讀 7671

animal a = new dog(); animal a = 所有子類型別

概念:父類引用指向子類物件,從而產生多種形態。

使用場景一:使用父類作為方法形參實現多型,使方法引數的型別更為寬泛(原理:如果子類覆蓋了父類的方法,則執行子類中覆蓋後的方法)。

使用場景二:使用父類作為方法返回值實現多型,使方法可以返回不同子類物件。(注意:父類引用僅可以呼叫父類宣告的屬性和方法,不可呼叫子類獨有的屬性和方法)

執行時多型存在的三個必要條件:1、要有繼承(包括介面的實現)2、要有重寫 3、父類引用指向子類物件。

向上轉型:animal a = new dog(); 父類引用中儲存真實子類物件稱為向上轉型(即多型核心概念),僅可呼叫父類中的屬性和方法。

向下轉型:animal a = new dog(); dog dog = (dog)a; 將父類引用中的真實子類物件,強轉回子類本身型別,稱為向下轉型。注意:只有轉換回子類真實型別,才可呼叫子類獨有的屬性和方法。向下轉型前,應該判斷引用中的物件真實型別,保證型別轉換的正確性。

instanceof 關鍵字:以equals() 方法舉例,string類重寫的equals()方法的

源**:

public boolean equals(object anobject) 

if (anobject instanceof string)

return true;}}

return false;

}

在判斷兩者比較是否相等時,第乙個if判斷是否是同乙個物件,第二個if判斷,可以理解為,形參obj 接收到的實參是否為 呼叫此equals方法的父類(object 是string的父類),故有多型中向下轉型,有助於反向理解string重寫的equals()的內容。

多型和關鍵字instanceof

1,同一種事物,由於條件不同,產生的結果不同 多型 同乙個引用型別,使用 指向 不同的例項而執行不同的操作 方法重寫是多型的基礎,2,多型的兩種形態轉換 a父類型別的引用指向子類型別物件 子類相父類的轉換稱為向上轉型 將乙個父類的引用指向乙個子類物件,稱為向上轉型,系統會自動進行型別轉換 向上轉型 ...

instanceof關鍵字講解

instanceof關鍵字 使用這個關鍵字可以確定乙個物件是類的例項 類的子類,還是實現了某個特定介面,並進行相應的操作。在某些情況下,我們希望確定某個類是否特定的型別,或者是否實現了特定的介面。instanceof操作符非常適合完成這個任務。instanceof操作符檢查三件事情 例項是否某個特定...

Java 中 instanceof關鍵字

instanceof和isinstance object obj 和isassignablefrom class cls 的區別和聯絡 程式設計的時候可能會遇到乙個不知道它屬於哪個類的物件,我們可以用下列運算子或者方法來判斷。instanceof 是運算子只被用於物件引用變數,檢查左邊的被測試物件是...