標籤:定義 兩種 情況下 main 布爾類型 公式 out 運行時 nbsp
概念:java 中的instanceof 運算子是用來在運行時指出對象是否是特定類的一個執行個體。instanceof通過返回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個執行個體。
公式: result = object instanceof class
參數分析:
result :布爾類型
object :任意的一個執行個體或者是運算式
class: 任意一個已定義的類
結果分析:
如果object是class的一個執行個體返回true,如果不是或者object 為 null 則返回false
instaanceof在運行時和編譯時間是有區別的:
在編譯狀態中,class可以是object對象的父類,自身類,子類。在這三種情況下Java編譯時間不會報錯。
在運行轉態中,class可以是object對象的父類,自身類,不能是子類。在前兩種情況下result的結果為true,最後一種為false。但是class為子類時編譯不會報錯。運行結果為false。
public class Base {
String name = "base";
public void baseA() {
System.out.println("name is" + name);
}
}
public class Child extends Base {
String name ="child";
String age ="18";
}
public class Test {
public static void main(String[] args) {
Base base = new Child();
System.out.print(base instanceof Base);
System.out.print(base instanceof Child);
System.out.print(base instanceof Object);
System.out.print(base instanceof System); --編譯錯誤
}
}
Java中instanceof關鍵字的理解