栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中isAssignableFrom()方法与instanceof关键字的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中isAssignableFrom()方法与instanceof关键字的区别

目录
    • 一、isAssignableFrom()方法与instanceof关键字的区别
    • 二、isAssignableFrom()方法与instanceof关键字的使用方法
    • 三、isAssignableFrom()方法与instanceof关键字具体示例

一、isAssignableFrom()方法与instanceof关键字的区别
  • isAssignableFrom()方法是从类继承的角度去判断。

    父类.class.isAssignableFrom(子类.class)
    
  • instanceof关键字是从实例继承的角度去判断。

    子类 子类实例= new 子类(); 
    子类实例 instanceof 父类类型
    
  • isAssignableFrom()方法是判断是否为某个类的父类,instanceof关键字是判断是否某个类的子类

二、isAssignableFrom()方法与instanceof关键字的使用方法
  • isAssignableFrom()方法的调用者和参数都是Class对象,调用者为父类,参数为本身或者其子类。
  • instanceof关键字两个参数,前一个为类的实例,后一个为其本身或者父类的类型。
三、isAssignableFrom()方法与instanceof关键字具体示例

1、代码

public interface EveryThing {
    public abstract void alive();
}
public class Animal implements EveryThing{
    @Override
    public void alive() {
        System.out.println("动物是有活力的");
    }

    public void eat(){
        System.out.println("动物吃食物");
    }

    public void sleep(){
        System.out.println("动物睡觉");
    }
}
public class Dog extends Animal{
    public void play(){
        System.out.println("狗可以跑");
    }
}
public class Test {
    public static void main(String[] args) {
        Animal animal = new Animal();
        Dog dog = new Dog();
        
        System.out.println("Dog.class.isAssignableFrom(Animal.class) = "+Dog.class.isAssignableFrom(Animal.class));
        System.out.println("Animal.class.isAssignableFrom(Dog.class) = "+Animal.class.isAssignableFrom(Dog.class));
        System.out.println("animal instanceof Animal = "+(animal instanceof Animal));
        System.out.println("dog instanceof Animal ="+(dog instanceof Animal));
        System.out.println("animal instanceof Dog = "+(animal instanceof Dog));
        System.out.println("dog instanceof Dog = "+(dog instanceof Dog));

       
        System.out.println("EveryThing.class.isAssignableFrom(Animal.class) = "+EveryThing.class.isAssignableFrom(Animal.class));
        System.out.println("Animal.class.isAssignableFrom(EveryThing.class) = "+Animal.class.isAssignableFrom(EveryThing.class));
        System.out.println("animal instanceof EveryThing = "+(animal instanceof EveryThing));
    }
}

2、运行main函数,输出结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351547.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号