interface接口是否有父类?

interface接口是否有父类?

我们都知道所有类的祖先都是Object类,interface接口是否有父类,那么我们可以通过idea插件jclasslib或者在控制台输入 javap -v xxx.class 查看class文件常量

首先我们先看一下普通类的class文件常量

先随便创建两个空的类和接口
在这里插入图片描述

public class Person {
}

public class Stu extends Person{
}

public interface IA {
}

public interface IB extends IA {
}

build project后下载了插件可以点击头顶的view
在这里插入图片描述

打开Stu.class看到的只有两个
在这里插入图片描述

分别是Person类和本身Stu类加上父类Person类里面的Object类一共就是三个
符合祖先类是Object的这个情况

那么我们来看看接口的class文件
在这里插入图片描述

我们看到IB接口也是有三个类,分别是IA,IB以及Object,是不是说明Object就是接口基类的父类?其实不是的,是因为Object是接口的引用,任何一个接口都会引用到Object类,所以才会在编译文件里面出现

以下是通过cmd来查看

D:class文件目录>javap -v Stu.class
Classfile 
  Last modified 2021-11-4; size 242 bytes
  MD5 checksum 3bd131f214c194e65cdba5e4d28fc61a
  Compiled from "Stu.java"
public class jvm.Stu
  minor version: 0
  major version: 49
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #3.#13         // java/lang/Object."<init>":()V
   #2 = Class              #14    //指向14        // jvm/Stu
   #3 = Class              #15    //指向15       // java/lang/Object
   #4 = Utf8               <init>
   #5 = Utf8               ()V
   #6 = Utf8               Code
   #7 = Utf8               LineNumberTable
   #8 = Utf8               LocalVariableTable
   #9 = Utf8               this
  #10 = Utf8               Ljvm/Stu;
  #11 = Utf8               SourceFile
  #12 = Utf8               Stu.java
  #13 = NameAndType        #4:#5          // "<init>":()V
  #14 = Utf8               jvm/Stu    //Stu全限定名
  #15 = Utf8               java/lang/Object   //Object全限定名

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值