instanceof
instanceof是Java 的保留關鍵字,
它的作用是測驗它左邊的物件是否是它右邊的類的實體,回傳 boolean 的資料型別,
-
類的實體包含本身的實體,以及所有直接或間接子類的實體
-
instanceof左邊顯式宣告的型別與右邊操作元必須是同種類或存在繼承關系,也就是說需要位于同一個繼承樹,否則會編譯錯誤
-
instanceof關鍵字的左邊的物件不能是基礎資料型別
-
左邊的物件實體和右邊的類不在同一個繼承樹上
簡單理解,A isntanceof B:以左邊類名為準,判斷左右是否是存在父子關系,如果是則編譯通過,否則編譯報錯!編譯通過后,再判斷A是否是B的實體物件或者B子類的物件!
因為null可以轉換成為任何型別,所以不屬于任何型別,instanceof結果會是false,
代碼實體:
public class Father {
}
public class Son extends Father{
}
public class Test {
public static void main(String[] args) {
Son son=new Son();
System.out.println(son instanceof Son);
System.out.println(son instanceof Father);
System.out.println(son instanceof Object);
Object object=new Object();
System.out.println(object instanceof Father);
String str="java里面的所有類都默認繼承了Object";
System.out.println(str instanceof String);
System.out.println(str instanceof Object);
}
}
輸出結果:
true
true
true
false
true
true
這部分比較繞,多敲點代碼理解一下!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/499021.html
標籤:Java
上一篇:java的資料型別
下一篇:IO流思維導圖
