java instanceof 运算符

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{}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值