java 中的instanceof 運算符是用來在運行時指出對象是否是特定類的一個實例。instanceof通過返回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個實例。
用法:
result = object instanceof class
參數:
Result:布爾類型。
Object:必選項。任意對象表達式。
Class:必選項。任意已定義的對象類。
說明:
如果 object 是 class 的一個實例,則 instanceof 運算符返回 true。如果 object 不是指定類的一個實例,或者 object 是 null,則返回 false。
但是instanceof在Java的編譯狀態和運行狀態是有區別的:
在編譯狀態中,class可以是object對象的父類,自身類,子類。在這三種情況下Java編譯時不會報錯。
在運行轉態中,class可以是object對象的父類,自身類,不能是子類。在前兩種情況下result的結果為true,最后一種為false。但是class為子類時編譯不會報錯。運行結果為false。
例子:
接口Person
public interface Person {public void eat();}
實現類People
public class People implements Person {private int a=0; @Override public void eat() { System.out.println("======"+a); }}
子類xiaoming:
public class xiaoming extends People {private String name;@Overridepublic void eat() { System.out.println("+++++++++");}}
主函數
public static void main(String[] args) { People p=new People(); xiaoming x=new xiaoming(); System.out.println(p instanceof Person); System.out.println(p instanceof xiaoming); -----2 System.out.println(x instanceof Person); System.out.println(x instanceof People); }
注意:上面2處的代碼在編譯時不會報錯。
運行結果:
true
false
true
true
總結
以上所述是小編給大家介紹的Java中instanceof關鍵字的理解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答
圖片精選