1. 程式人生 > >第二十六、Java面向物件之instanceof 關鍵字

第二十六、Java面向物件之instanceof 關鍵字

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