第二十六、Java面向物件之instanceof 關鍵字
阿新 • • 發佈:2019-02-18
instanceof是什麼?
1:屬於比較運算子:
2:instanceof關鍵字:該關鍵字用來判斷一個物件是否是指定類的物件。
3:使用格式:
物件 instanceof 類;
該表示式是一個比較運算子,返回的結果是boolea型別 true|false
注意:使用instanceof關鍵字做判斷時,兩個類之間必須有關係,判斷的物件與指定的類別必須要存在繼承或者實現的關係。
一般我們做強制型別轉換之前都會使用該關鍵字先判斷一把,然後在進行轉換的。
class Animal{ String name; String color; public Animal(String name, String color){ this.name = name; this.color = color; } } //狗是屬於動物中一種 class Dog extends Animal { public Dog(String name,String color){ super(name,color); //指定呼叫父類兩個 引數的建構函式。 } public void bite(){ System.out.println(name+"咬人!!"); } } //老鼠 也是屬於動物中一種 class Mouse extends Animal{ public Mouse(String name,String color){ super(name,color); } public void dig(){ System.out.println(name+"打洞.."); } } class MyClass{ public static void main(String[] args) { Dog d = new Dog("哈士奇","白色"); System.out.println("狗是狗類嗎?"+ (d instanceof Dog)); System.out.println("狗是動物類嗎?"+ (d instanceof Animal)); //System.out.println("狗是老鼠類嗎?"+ (d instanceof Mouse)); // false true Animal a = new Animal("狗娃","黃色"); //狗娃是人 System.out.println("動物都是狗嗎?"+ (a instanceof Dog)); } }
執行結果如下:
LoveQideMacBook-Pro:desktop loveqi$ java MyClass
狗是狗類嗎?true
狗是動物類嗎?true
動物都是狗嗎?false