Java 中 instanceof關鍵字

2021-05-26 08:04:00 字數 884 閱讀 2207

instanceof和isinstance(object obj)

和isassignablefrom(class cls)的區別和聯絡

程式設計的時候可能會遇到乙個不知道它屬於哪個類的物件,我們可以用下列運算子或者方法來判斷。

instanceof

是運算子只被用於物件引用變數,檢查左邊的被測試物件是不是右邊類或介面的例項化。如果被測物件是null值,則測試結果總是false。

string str = new string("測試");

system.out.

println(str instanceof string); 

//輸出true。 

isinstance(object obj)方法,這個方法與instanceof等價,其中obj是被測試的物件,如果obj是呼叫這個方法的class或介面的例項,則返回true。

string str = new string("測試");

system.out.println

(string.class.isinstance(str));

//輸出true。

isassignablefrom(class cls)方法,如果呼叫這個方法的class或介面與引數cls表示的類或介面相同,或者是引數cls表示的類或介面的父類,則返回true。

system.out.println(string.

class.isassignablefrom(object.class));  

system.out.println(object.class.

isassignablefrom(string.class)); 

//其中第乙個輸出false,第二個輸出true。

java中的instanceof用法

乙個類的物件可以轉換成繼承鏈中的另乙個類的物件。在進行物件轉換時必須注意 1 乙個子類物件的型別可以向上轉換,即乙個子類可以轉換成它的父類。這種轉換是安全的,因為子類中含有父類的資訊,子類是父類的乙個超集。轉換的結果是丟失子類中新定義的資訊。2 乙個父類物件的型別一般來說是不可以向下轉換成它的子類,...

Java中介面 多型 instanceof

一 介面 1,概述 介面是特殊的抽象類,所有的屬性都是公開靜態常量 全域性常量 所有的方法都是公開抽象方法而且沒有構造方法。2,思想 特點 介面是對外暴露的規則 介面是程式的功能擴充套件 介面的出現降低耦合性 介面可以用來多實現 類與介面之間是實現關係,而且類可以繼承乙個類的同時實現多個介面。介面與...

Java中instanceof的用法

instanceof 運算子作用 instanceof 用法boolean result object instanceof class引數 result 布林型別。object 任意物件表示式。class 任意已定義的物件類。如果 object 是 class 的乙個例項,則返回 true。如果 ...