用于判断类型是否相同
用在多太上
代码演示:
abstract class Animal
{
abstract void eat();
}
class Dog extends Animal
{
void eat()
{
System.out.println("啃骨头");
}
void lookHome()
{
System.out.println("看家");
}
}
class Cat extends Animal
{
void eat()
{
System.out.println("吃鱼");
}
void catchMouse()
{
System.out.println("抓老鼠");
}
}
class Pig extends Animal
{
void eat()
{
System.out.println("猪饲料");
}
void gongDi()
{
System.out.println("拱地");
}
}
class DuoTaiDemo2
{
public static void main(String[] args)
{
method(new Cat());
method(new Dog());
}
public static void method(Animal a)//Animal a = new Cat();
{
if(a instanceof Cat) // 对象 instanceof 类型 判断具体对象是否是指定的类型。
// instanceof是一个关键字,用于判断对象的类型,
// 什么时候用?当进行向下转型时,先判断该对象是否符合被转成的子类型。 {
Cat c = (Cat)a;//ClassCastException
c.catchMouse();
}
else if(a instanceof Dog)
{
Dog d = (Dog)a;
d.lookHome();
}
a.eat();
}
}
这里简单说明,假如来了一个猫,你并不做对象类型判断就把他转成狗,那是不行的。这个关键字的用途就是判断对象类型是否相同。以后在写程序遇到类型转换的时候就可以用 |