转发:

isAssignableFrom方法具有什么功能呢?

下文笔者讲述isAssignableFrom()方法的功能简介说明

isAssignableFrom()方法简介

isAssignableFrom()方法:这是一个native方法,他是Class类对象中的一个方法
isAssignableFrom()方法的功能:用于检测一个类是否继承于一个类
例:A.isAssignableFrom(B)确定一个类(B)是不是继承来自于另一个父类(A)一个接口(A)是不是实现了另外一个接口(B)或两个类相同
父子继承关系测试
class A{
}
class B extends A{
}
class C extends B{
}
public class test {public static void main(String[] args) {A a = new A();B b = new B();B b1 = new B();C c = new C();System.out.println(a.getClass().isAssignableFrom(a.getClass()));System.out.println(a.getClass().isAssignableFrom(b.getClass()));System.out.println(a.getClass().isAssignableFrom(c.getClass()));System.out.println(b1.getClass().isAssignableFrom(b.getClass()));System.out.println(b.getClass().isAssignableFrom(c.getClass()));System.out.println("=====================================");System.out.println(A.class.isAssignableFrom(a.getClass()));System.out.println(A.class.isAssignableFrom(b.getClass()));System.out.println(A.class.isAssignableFrom(c.getClass()));System.out.println("=====================================");System.out.println(Object.class.isAssignableFrom(a.getClass()));System.out.println(Object.class.isAssignableFrom(String.class));System.out.println(String.class.isAssignableFrom(Object.class));}
}
运行结果如下:true
true
true
true
true
=====================================
true
true
true
=====================================
true
true
false
从以上代码上可以看出C继承于BB继承于A
那么任何一个类都可以isAssignableFrom其本身
父类可以由子类装换而来也是没有问题的
所以A可以由B装换而来,同时也可以由子类的子类转换而来
例:接口的实现关系
interface InterfaceA{
}class ClassB implements InterfaceA{}
class ClassC implements InterfaceA{}
class ClassD extends ClassB{}
public class InterfaceTest {public static void main(String[] args) {System.out.println(InterfaceA.class.isAssignableFrom(InterfaceA.class));System.out.println(InterfaceA.class.isAssignableFrom(ClassB.class));System.out.println(InterfaceA.class.isAssignableFrom(ClassC.class));System.out.println(ClassB.class.isAssignableFrom(ClassC.class));System.out.println("============================================");System.out.println(ClassB.class.isAssignableFrom(ClassD.class));System.out.println(InterfaceA.class.isAssignableFrom(ClassD.class));}
}
输出结果如下:true
true
true
false
============================================
true
true
B实现了接口A
D继承了B
实际上D是可以上转为A接口的
相当于D间接实现了A
这里也说明了一点
其实继承关系和接口实现关系
在isAssignableFrom()的时候是一样的
isAssignableFrom:是用来判断子类和父类的关系的,或接口的实现类和接口的关系的默认所有的类的终极父类都是Object
当A.isAssignableFrom(B)结果是true,则说明B可以转换成为A,也就是A可以由B转换而来 
 

isAssignableFrom方法的功能简介说明相关推荐

  1. Java中System.exit()方法的功能简介说明

    转自: Java中System.exit()方法的功能简介说明 下文笔者讲述java代码中System.exit()方法的功能简介说明,如下所示: Java中System.exit()方法功能:此方法 ...

  2. 免费的企微运营利器-企客加(企客加功能简介、安装方法)

    企客加-私域运营系统:是一款基于企业微信开发的应用系统,企客加是企业微信官方授权服务商,是中智融合的核心产品之一. 帮助企业搭建集裂变获客.留存促活.销售转化.客户管理于一体的私域增长闭环营销系统,已 ...

  3. Java中Random.nextInt()方法功能简介说明

    转自: Java中Random.nextInt()方法功能简介说明 下文笔者将讲述Random.nextInt()方法的功能简介说明,如下所示: Random.nextInt()方法功能:用于随机产生 ...

  4. Java OutputStream.write()的功能简介说明

    转自: Java OutputStream.write()的功能简介说明 下文讲述java中OutputStream.write()方法的功能简介说明,如下所示: OutputStream.write ...

  5. BCP功能简介及调试方法之三

    BCP功能简介及调试方法 1. BCP简介 ​ BCP是最近研究的一个网络协议,主要是基于PPP链路,能够把双方子网的网络桥接. ​ BCP全称: Point-to-Point Protocol (P ...

  6. python isnumeric函数用法_Python中isnumeric()方法的使用简介

    Python中isnumeric()方法的使用简介 更新时间:2015年05月19日 09:35:06 投稿:goldensun 这篇文章主要介绍了Python中isnumeric()方法的使用,is ...

  7. 【Android 逆向】代码调试器开发 ( 代码调试器功能简介 | 设置断点 | 读写内存 | 读写寄存器 | 恢复运行 | Attach 进程 )

    文章目录 一.代码调试器功能简介 二.Attach 进程 一.代码调试器功能简介 代码调试器功能 : 设置断点 : 无论什么类型的调试器 , 都必须可以设置断点 , 运行到断点处 , 挂起被调试进程 ...

  8. Arduino终于支持代码补全了!小白们终于可以愉快的写代码了!Arduino IDE 2.0beta功能简介...

    Arduino终于支持代码补全了!小白们终于可以愉快的写代码了!Arduino IDE 2.0beta功能简介 前一段时间听到有人说Arduino的IDE特别不好用,功能太单一,最重要的是没有代码补全 ...

  9. MKL学习——功能简介

    基本术语 BLAS : Basic Linear Algebra Subprograms 基本线性代数子程序 BLACS : Basic Linear Algebra Communication Su ...

最新文章

  1. 去除导航栏的背景色和底部1像素黑色线条or隐藏导航栏
  2. UVa 1368 - DNA Consensus String
  3. 歌星大奖赛C语言程序,C_歌星大奖赛
  4. 简述运行PHP文件的步骤,简述PHP运行机制
  5. 1.极限——ε-δ例子_7
  6. 软件工程学习进度第六周暨暑期学习进度之第六周汇总
  7. wsimport命令讲解
  8. Ajax02 什么是json、json语法、json的使用、利用jQuery实现ajax
  9. 安川ga700变频器故障码集_安川变频器故障代码
  10. 计算机休眠期死机,电脑休眠状态频繁死机怎么处理
  11. python打印日历_用Python打印某年日历
  12. 【计算机网络】计网学习——总览(超多图+超详解)
  13. 变身后是一只火鸟的机器人_中生代机器人 第一章 丛林求生历险记 05 (05)一-望书阁...
  14. 使用XMind 打开MindManager 格式文件(.mmap)
  15. 威联通ts 532x 篇七 修改shell 命令行 为 zsh + oh-my-zsh
  16. 形函数的构造原理-有限元形函数的几个种类
  17. datastage配置oracle,配置datastage与oracle 10g连接
  18. 黑客攻防技术宝典-Web实战篇——第二章、核心防御机制(一)
  19. AD17原理图导出PDF异常-PIN脚网络丢失解决方法
  20. 中国各省市编号(具体到二级市、区、县)

热门文章

  1. 【保存】新装Win10后Edge、OneDrive无法登录微软账号解决办法
  2. 一个行程问题与对应的数列求和
  3. 用html css JavaScript写一个功能全面的王者荣耀轮播图 (仿淘宝京东轮播图)通俗易懂
  4. python的日志模块:logging;django的日志系统;django日志输出时间修改
  5. 笔记本win10系统连接wifi显示无Internet安全如何解决
  6. Windows7 个人服务详解及优化
  7. python将图片转成灰度图
  8. 以太网与 TCP/IP
  9. 使用Android Studio开发一个简易的音乐播放器
  10. R语言批量提取excel当中的数据