isAssignableFrom和instanceof的区别

区别

1.instanceof 用来判断一个对象实例obj是否是另一个类或接口的实例。格式是:

obj instanceof ClassName

第一个参数是实例对象,第二个参数是类名。

2.isAssignableFrom 用来判断一个类Class1是否与另一个类Class2相同,或者Class1是否是Class2的超类或接口。格式是:

Class1.isAssignableFrom(Class2);

第一个参数是类对象,第二个参数也是类对象。
总结:

instanceof 是子->父的过程;
isAssignableFrom 是父->子的过程

代码案例

package com;

public class BaseTest {
    
    

    public static void main(String[] args){
    
    
        boolean assignableFrom = Father.class.isAssignableFrom(Son.class);
        System.out.println("assignableFrom:"+ assignableFrom);
        if(new Son() instanceof Father){
    
    
            System.out.println("instaceof 测试");
        }
    }
}
class Father{
    
    

}
class Son extends Father{
    
    

}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xiaowanzi_zj/article/details/121346317