前面是一个引用类型变量后面是一个类,用于判断前面的对象是否是后面的类的实例,如果是返回true,若不是返回false,避免了ClassCastException。
public interface Animal {
public abstract void eat();
}
public class Cat implements Animal{
public void eat(){
System.out.println("chi yu");
}
public void catchMouse(){
System.out.println("zhu lao shu");
}
}
public class Dog implements Animal{
public void eat(){
System.out.println("chi gu tou");
}
public void kanHouse(){
System.out.println("kan men");
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Cat();
function(a);
}
public static void function(Animal a){
a.eat();
if(a instanceof Cat){
Cat c = (Cat)a;
c.catchMouse();
}else if(a instanceof Dog){
Dog d = (Dog)a;
d.kanHouse();
}
}
}