gpt4 book ai didi

java - 不扩展 java.lang.Object 的类

转载 作者:搜寻专家 更新时间:2023-11-01 01:05:47 25 4
gpt4 key购买 nike

当您在 Java 中创建用户定义的类时,您不会将其指定为扩展对象。但是这个类仍然是一个对象。这是如何运作的? javac 或 JVM 如何将一个类的所有属性注入(inject)到用户定义的类中?

最佳答案

如果您实际上没有编写extends Object,编译器会为您插入它。

编辑:显然,我对是否确实在插入代码造成了一些困惑。我自己也不是很确定,所以我做了一个小实验:在文件 test.java 中创建以下类:

public class test {}

然后编译,然后运行

javap -c test

反汇编字节码。看看结果是什么:

Compiled from "test.java"public class test extends java.lang.Object{public test();  Code:   0:   aload_0   1:   invokespecial   #1; //Method java/lang/Object."":()V   4:   return}

所以是的,编译器确实实际上将 extends java.lang.Object(或等效的字节码)插入到类中。

关于java - 不扩展 java.lang.Object 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com