Java中isAssignableFrom()与instanceof()方法用法

      isAssignableFrom()方法是从类继承的角度去判断,判断是否为某个类的父类。
      instanceof()方法是从实例继承的角度去判断,判断是否某个类的子类。

      例如:Class1.isAssignableFrom(Class2) 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口。  调用者和参数都是java.lang.Class类型;obj instanceof TypeName  是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例, 第一个参数是对象实例名,第二个参数是具体的类名或接口名。

     demo:

public class Father {
}
public class Son extends Father {

}
public class Test  {
    private static final String TAG = MainActivity.class.getSimpleName();

    public void test() {
        Father father = new Father();
        Son son = new Son();

        Log.e(TAG, "Father是Son的父类:" + Father.class.isAssignableFrom(son.getClass()));
        Log.e(TAG, "Son 是Father的父类:" + Son.class.isAssignableFrom(father.getClass()));
        Log.e(TAG, "father是Father的实例:" + (father instanceof Father));
        Log.e(TAG, "son是Father的实例:" + (son instanceof Father));
        Log.e(TAG, "father是Son的实例:" + (father instanceof Son));

    }
}
      输出结果:
      Father是Son的父类:true
      Son 是Father的父类:false
      father是Father的实例:true
      son是Father的实例:true
      father是Son的实例:false



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈德山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值