gpt4 book ai didi

Java:Object 类有构造函数吗?

转载 作者:IT老高 更新时间:2023-10-28 21:14:47 24 4
gpt4 key购买 nike

Javadoc 提到 Object 类有一个公共(public)的无参数构造函数。但是 Object 的源代码中没有任何显式的构造函数。所以很明显编译器已经为它生成了一个。但是,如果我在构造函数即将返回时看到调用堆栈跟踪(如下所示),我看不到对 Object.<init> 的任何调用。在那个痕迹中。

所以问题是,Object 类是否有文档所说的默认构造函数?如果是,为什么我在调用堆栈跟踪中看不到它?

public ConTest()
{
new Throwable().printStackTrace();
}

结果:

java.lang.Throwable
at ConTest.<init>(ConTest.java:8)
at ConTest.main(ConTest.java:16)

最佳答案

super 构造函数在子/基础构造函数之前运行。在您的示例中,当执行 new Throwable().printStackTrace() 时,对象的构造函数已经运行。

更明确的代码版本:

public ConTest()
{
super();
new Throwable().printStackTrace(); // you will not see super() (Object.<init>) in this stack trace.
}

关于Java:Object 类有构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12066984/

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