instanceof运算符可以判断一个引用是不是一个类或者这个类的子类的对象的引用
格式: 引用名 instanceof 类名
如果这个引用是 该类对象的引用 则 结果为true,或者这个引用是这个类的子类的对象的引用,结果也为true ,否则,结果为false
package learnAgain;
/*
instanceof 运算符用来判断一个变量所引用的对象的实际类型,
注意是它引用的对象的类型,不是变量的类型。
如果变量引用的是当前类或它的子类的实例,instanceof 返回 true,否则返回 false。
*/
public class Instanceof
{
static Instanceof instanceof1=new Instanceof();
public static void main(String[] args)
{
Animal animal=instanceof1.new Animal();
if(animal instanceof Animal)
System.out.println("annimal是动物");
else
System.out.println("animal不是动物");
if(animal instanceof Dog)
System.out.println("animal是狗狗");
else
System.out.println("animal不是狗狗");
if(animal instanceof Cat)
System.out.println("animal是猫");
else
System.out.println("animal不是猫");
System.out.println("---------------------------------------");
animal=instanceof1.new Dog();
if(animal instanceof Animal)
System.out.println("annimal是动物");
else
System.out.println("animal不是动物");
if(animal instanceof Dog)
System.out.println("animal是狗狗");
else
System.out.println("animal不是狗狗");
if(animal instanceof Cat)
System.out.println("animal是猫");
else
System.out.println("animal不是猫");
System.out.println("--------------------------------");
Husky husky=instanceof1.new Husky();
if(husky instanceof Animal)//判断husky是不是Animal类实例的引用,或者是Animal子类实例的引用
System.out.println("husky是动物");
else
System.out.println("husky不是动物");
if(husky instanceof Dog)//判断husky是不是Dog类实例的引用,或者是Dog子类的引用
System.out.println("husky是狗狗");
else
System.out.println("husky不是狗狗");
// if(husky instanceof Cat)//这里直接eclipse直接报错
// System.out.println("hasky是猫");
// else
// System.out.println("hasky不是猫");
}
class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}
class Husky extends Dog{}
}