Java 中 instanceof 、isAssignableFrom 、 isInstance 之间区别和联系

        Java 中 instanceof 、isAssignableFrom 、 isInstance 之间区别和联系

一、作用和区别

        1、 instanceof : Java 中的关键字,判断某个实例是否属于某个类的子类或子接口

        2、isAssignableFrom :Java Class类中的方法 ( java.lang.Class.isAssignableFrom(Class<?> )),判断某个类是否为被判断类的父类或父接口。

        3、isInstance :Java Class类中的方法( java.lang.Class.isInstance(Object) ),判断某个类是否为被判断的实例的父类或子接口。

二、代码理解

        1、定义Parent 类

        2、定义Face接口

        3、定义Child 类继承Parent类实现Face

        4、使用 Child类实例 instanceof Parent类

        5、使用 Parent 类 isAssignableFrom Child类

        6、使用Face接口isInstance Child类的实例

     public static class Parent{
		
	}
	
	public  interface Face{
		
	}
	
	public static class Child extends Parent implements Face{
		
	}
	
	public static void main(String[] args) {
		Parent p = new Parent();
		Child c = new Child() ;
		if(c instanceof Parent) {
			System.out.println(" c 是Parent 子类");
		}
		
		if(Parent.class.isAssignableFrom(Child.class)) {
			System.out.println(" child 是Parent 的子类");
		}
		
		if(Face.class.isInstance(c)) {
			System.out.println(" Face 是 child的父接口");
		}
	}

三、总结

        1、instanceof:用法:c instanceof Parent ,实例c是否为Parent类的子类或子接口。 (是不是你爸爸?

        2、isInstance:用法: Face.class.isInstance(c) , Face类是否为实例c的父类或父接口(是不是你儿子?) ---- 和 instanceof 关键字判断刚刚好相反。

        3、isAssignableFrom:用法:Parent.class.isAssignableFrom(Child.class) ,Parent类是否为Child类的父类或父接口。(是不是你儿子?

        4、instanceof 、isAssignableFrom 、 isInstance 都是判断Java中类之间的关系(继承类、实现接口); instanceof 判断是左边是不是右边的儿子isInstanceisAssignableFrom 判断的左边是不是右边的爸爸

        5、instanceof 和 isInstance 都是用来判断 类(接口)和实例之间是否存在关系。

        6、isAssignableFrom 判断类和类(接口) 之间是否存在关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值