JAVA---instanceof关键字

使用情景:为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,就不进行向下转型。

package exer;

public class AnimalsTest {
	public static void main(String[] args) {
		Animals a=new Dog();
		if(a instanceof Cat){
			Cat c=(Cat)a;
			c.eat();
			System.out.println("Cat----------------");
		}else if(a instanceof Dog){
			Dog d=(Dog)a;
			d.eat();
			System.out.println("DOG----------------");
		}
	}
}
class Animals{
	public void eat(){
		System.out.println("吃");
	}
}
class Dog extends Animals{
	public void eat(){
		System.out.println("吃骨头");
	}
}
class Cat extends Animals{
	public void eat(){
		System.out.println("吃鱼肉");
	}
}
posted @ 2022-01-18 16:21  ice--cream  阅读(23)  评论(0编辑  收藏  举报