gpt4 book ai didi

java - 为什么子类构造函数不重写?

转载 作者:行者123 更新时间:2023-12-01 06:41:27 26 4
gpt4 key购买 nike

我有代码:

class Oak extends Tree {
public Oak() {
System.out.println("Oak()");
}
}
class Tree {
public Tree() {
System.out.println("Tree()");
}
}

class mainClass {
public static void main(String[] args) {
Oak a = new Oak();
}
}

为什么会打印

Tree() 
Oak()

而不仅仅是

Oak()

最佳答案

Oak 是一种 Tree,因此必须首先构造对象的 Tree 部分。因此,默认的 Tree 构造函数被调用。随后,Oak 构造函数可以运行。

这与在 Oak 构造函数中显式调用 Tree 构造函数作为第一条语句完全相同:

public Oak() {
super();
...
}

[请注意,构造函数不会“覆盖”。]

关于java - 为什么子类构造函数不重写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5822079/

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