重载子类的构造函数
Overload constructors of subclass
所以我有一个摘要class:
public abstract class Superclass {
private final boolean isTrue;
private final int number1;
private final int number2;
private final int number3;
public Superclass(boolean isTrue, int number1, int number2, int number3) {
this.isTrue = isTrue;
this.number1 = Math.abs(number1);
this.number2 = Math.abs(number2);
this.number3 = Math.abs(number3);
}
最重要的是,我创建了一个 "Superclass" 的子 class,它应该有 2 个 public 构造函数:
public class Subclass extends Superclass{
public Subclass(int number2, int number3) {
...
}
public Subclass(int number1, int number2, int number3) {
...
}
现在我不知道我应该在这些构造函数中写什么才能使它们工作,因为我认为必须调用 super(isTrue, number1, number2, number3) ,这显然是不可能的。
我不想向 subclass 添加任何附加属性。有什么办法可以做到吗?提前致谢:)
您必须为未提供给子类构造函数的超类所需的参数提供(默认)值。
例如:
public Subclass(int number2, int number3) {
super(true, 0, number2, number3);
}
所以我有一个摘要class:
public abstract class Superclass {
private final boolean isTrue;
private final int number1;
private final int number2;
private final int number3;
public Superclass(boolean isTrue, int number1, int number2, int number3) {
this.isTrue = isTrue;
this.number1 = Math.abs(number1);
this.number2 = Math.abs(number2);
this.number3 = Math.abs(number3);
}
最重要的是,我创建了一个 "Superclass" 的子 class,它应该有 2 个 public 构造函数:
public class Subclass extends Superclass{
public Subclass(int number2, int number3) {
...
}
public Subclass(int number1, int number2, int number3) {
...
}
现在我不知道我应该在这些构造函数中写什么才能使它们工作,因为我认为必须调用 super(isTrue, number1, number2, number3) ,这显然是不可能的。 我不想向 subclass 添加任何附加属性。有什么办法可以做到吗?提前致谢:)
您必须为未提供给子类构造函数的超类所需的参数提供(默认)值。
例如:
public Subclass(int number2, int number3) {
super(true, 0, number2, number3);
}