gpt4 book ai didi

java - 不允许包含默认构造函数 - Java 基础

转载 作者:行者123 更新时间:2023-11-29 09:39:38 24 4
gpt4 key购买 nike

A 类:

public class A {    

private String firstName;

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

B 类:

public class B extends A{

private int billNum;

B(String firstName, String billNum) {
super(firstName);
setBillNum(billNum);

}

public int getBillNumr() {
return billNum;
}

public void setBillNum(int billNum) {
this.billNum = billNum;
}

1.) 现在我想添加一个默认的 like 构造函数,例如 B() {},但我不允许这样做。这是为什么?

最佳答案

由于 B 中的这一行,您提供的代码无法编译:

super(firstName);

这表明实际上,您的A 类具有如下构造函数:

public A(String firstName) {
this.firstName = firstName;
}

此时,如果没有 super 调用,尝试在 B 中声明一个新构造函数将会失败,因为 A< 中没有无参数构造函数.

所以这会起作用:

B() {
super("Anonymous");
}

或者您可以向 A 添加一个无参数构造函数:

A() {
this("Anonymous");
}

...此时您可以在 B 中使用 B() {}

基本上,一旦您了解没有任何显式 this(...)super(...) 调用的构造函数等同于调用 super ()(即父类(super class)中的无参数构造函数)这一切都有意义。

关于java - 不允许包含默认构造函数 - Java 基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13239304/

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