java中isAssignableFrom()方法与instanceof关键字的区别
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中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函数,输出结果如下:
以上是关于java中isAssignableFrom()方法与instanceof关键字的区别的主要内容,如果未能解决你的问题,请参考以下文章
Java isAssignableFrom()方法与instanceof()方法区别
Java isAssignableFrom()方法与instanceof()方法区别