用instanceof关键字可以判断可以判断一个对象是否为某个类(或者接口)的实例或者子类实例,举例如下:
package day1;
import java.util.*;
interface Animal{
void shout();
abstract class Cat{};
abstract class Dog{};
}
class Cat implements Animal {
@Override
public void shout() {
System.out.println("喵喵。。。");
}
public void CatchMouse() {
System.out.println("猫抓老鼠");
}
}
class Dog implements Animal{
@Override
public void shout() {
System.out.println("汪汪。。。");
}
}
public class test1 {
public static void main(String[] args) {
Animal an1=new Dog();
//instanceof代码实例在这
if(an1 instanceof Cat) {
Cat cat=(Cat) an1; //强制转换为Cat类型,这样cat才能调用CatchMouse方法
cat.shout();
cat.CatchMouse();
}else {
System.out.println("该类对象不是Cat类型");
}
}
}
运行结果如下: