Java instanceof 及其應用程式


instanceof 運算子用於檢查傳遞物件的型別。以下規則說明了 Java 中 instanceof 運算子的用法。

  • 對於與自身類型別進行檢查的物件,instanceof 運算子返回真。

  • 對於檢查與其型別(此類型別不在其層次結構中)的物件,instanceof 運算子返回假。

  • 對於與父物件型別進行檢查的子物件,instanceof 運算子返回真。

  • 對於一直到 Object 類的整個物件層次結構,instanceof 運算子返回真。

  • 對於 null 值,instanceof 運算子返回假。

  • 對於與子物件型別進行檢查的父物件,instanceof 運算子返回假。

以下示例展示了上述概念。

示例

 實際演示

class SuperClass {
   int value = 10;
}

class SubClass extends SuperClass {
   int value = 12;
}

public class Tester{
   public static void main(String[] args){
      SuperClass obj = new SubClass();

      //instanceof returns true for the complete Object Hierarchy
      if(obj instanceof SubClass){
         System.out.println("obj is instanceof SubClass");
      }
      if(obj instanceof SuperClass){
         System.out.println("obj is instanceof SuperClass");
      }
      if(obj instanceof Object){
         System.out.println("obj is instanceof Object");
      }

      SuperClass obj1 = null;

      //instanceof returns false for null
      if(obj1 instanceof SuperClass){
         System.out.println("null is instanceof SuperClass");
      }

      SuperClass obj2 = new SuperClass();

      //instanceof returns false for the subclass
      if(obj2 instanceof SubClass){
         System.out.println("obj2 is instanceof SubClass");
      }
      if(obj2 instanceof SuperClass){
         System.out.println("obj2 is instanceof SuperClass");
      }
   }
}

輸出

obj is instanceof SubClass
obj is instanceof SuperClass
obj is instanceof Object
obj2 is instanceof SuperClass

更新於: 2020-06-23

506 次瀏覽

開啟您的 職業生涯

透過完成課程來獲得認證

開始
廣告