スーパークラスを拡張するサブクラスがあります。スーパークラスのコンストラクターに a 、b、c のようなパラメーターがある場合MySuperClass(int a, string b, string c)
。サブクラスのコンストラクターには、 a、d、e のようなパラメーターがありますMySubClass(int a, int d, int e)
。サブクラスのコンストラクターの内部には何を入れる必要がありますか? パラメータasuper(a)
のコードを複製する必要がないように言えますか? ただし、super のコンストラクターには 3 つのパラメーターがあります。だから私はそれができないと思います。
また、スーパーの使用を無視してフィールドをパラメーターに割り当てると (のようにthis.fieldName=parameterName
)、「スーパーにはデフォルトのコンストラクターがありません」というエラーが表示されます。
public abstract class Question {
// The maximum mark that a user can get for a right answer to this question.
protected double maxMark;
// The question string for the question.
protected String questionString;
// REQUIRES: maxMark must be >=0
// EFFECTS: constructs a question with given maximum mark and question statement
public Question(double maxMark, String questionString) {
assert (maxMark > 0);
this.maxMark = maxMark;
this.questionString = questionString;
}
}
public class MultiplicationQuestion extends Question{
// constructor
// REQUIRES: maxMark >= 0
// EFFECTS: constructs a multiplication question with the given maximum
// mark and the factors of the multiplication.
public MultiplicationQuestion(double maxMark, int factor1, int factor2){
super(maxMark);
}
}