栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java中的继承如何工作?

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

Java中的继承如何工作?

子类不维护任何表示其父类的特殊字段。您可能正在按照内部类的思路进行思考,这些内部类 确实
引用了它们的外部类。这是一种特殊情况,并不代表超子类之间的相互关系。

JVM在内部维护一个“方法表”,将其加载的每个类与该类可用的方法相关联。JVM还知道其加载的所有类之间的关系,包括超级子关系。

当您调用一个

super
函数时,JVM实际上会做两件事:

  • 确定从中调用该方法的类的父级
  • 确定将在父级上调用的方法
  • 调用方法,并带有特殊说明(
    invokespecial

如果要检查类的类文件

Sub
,则该
foo
方法将显示以下内容:

void foo();    flags:     Code:        stack=2, locals=1, args_size=1 0: aload_0        1: invokespecial #2        // Method Super.foo:()V 4: getstatic     #3        // Field java/lang/System.out:Ljava/io/PrintStream; 7: ldc#4        // String Sub 9: invokevirtual #5        // Method java/io/PrintStream.println:(Ljava/lang/String;)V

清单1中的第1行显示了调用超类方法的特殊指令。

Java虚拟机规范(尤其是第2.11.8节)是很好的阅读资料。



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

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

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