接口与Object类的关系

qq1791345728 2020-02-15 11:54:36
请问各位大大,接口与Object类是一种怎样的联系?

我的问题:
为什么接口引用可以调用实现类继承的Object方法(如toString)
为什么Object类型的形参可以接受接口引用的对象
如果可以,上两个问题我不要了,只求dalao们告诉我怎么看懂javap -v的反编译信息,我是真心想看懂,而不是一知半解,似懂非懂的很难受

我的思考:
关于第一个问题,Oracle公司解释说是接口隐式声明了Object类的每个非final方法,与之一一对应,即实现类继承Object方法的同时也实现了接口里隐式声明的方法
那么第二个问题,接口无法继承类,Object类型的形参又是怎么接受接口类型的引用呢,同时对空接口的反编译信息中,包含class java/lang/Object的信息,我是否可以认为接口以某种方式“继承”了Object类呢

希望大大们见谅,我的思考必定是矛盾且幼稚的,就像我曾经问过接口和抽象类的意义,现在又摸不清内部类有什么用,希望大大们能帮助我,谢谢啦
...全文
262 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
西里木木 2022-07-29
  • 打赏
  • 举报
回复
第二个,我猜测的是父类指向的class是文件的规范,和隐式扩展object的抽象方法没有关系,接口也是class文件结构,也会getcalss获取类对象。
西里木木 2022-07-29
  • 打赏
  • 举报
回复 1
有搞懂的嘛
qybao 2020-02-16
  • 打赏
  • 举报
回复
问题1,java里Object是所有类的根,也就是Object以外的类,没有extends关键字声明class的,默认都会extends Object,所以接口的实现类也是Object类的子类。即 class SomeClass implement SomeInterface {} 相当于 class SomeClass extends Object implement SomeInterface {}。 问题2 既然任何类都是Object的子类,那么Object类作为形參就能接收所有类型。也就相当于Object是通用类型。随便找本入门的书都会有这种子类自动转为父类的知识点内容,LZ自己脑补一下吧。 至于想看懂javap的反编译信息,那就谷歌百度一下class文件结构以及jvm指令集之类的相关内容,好好研究吧。
再启动 2020-02-16
  • 打赏
  • 举报
回复
你这个问题涉及的内容比较多,建议看一下《深入理解Java虚拟机》,前两个问题看看第二章,第三个问题可以看第8章 前两个问题就是类是如何加载到虚拟机中的,知道怎么加载的,你这两个问题就理解了。 第三个问题先得懂基础的编译原理基础的汇编指令,然后结合第八章的讲解和例子,基本就可以入门了。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧