以下に示すように、2つのクラスA(スーパークラス)とB(サブクラス)があります。私はsuper()
キーワードをスーパークラスのコンストラクタをインスタンス化するためのパラメータとともに使用しました。しかし、スーパークラスの属性の数が膨大なときに時間がかかるので、サブクラスのスーパークラスのすべてのパラメータをリストするのではなく、これを行う別のエレガントな方法を探しています。継承コンストラクタのインスタンス化
public class A {
private String a1;
private String a2;
private String a3;
public A (String a1, String a2, String a3){
this.a1 = a1;
this.a2 = a2;
this.a3 = a3;
}
public void setA1(String a1){
this.a1 = a1;
}
public String getA1(){
return a1;
}
...
}
public class B extends A{
private String b1;
private String b2;
private String b3;
public B (String b1, String b2, String b3, String a1, String a2, String a3){
super(a1,a2,a3);
this.b1 = b1;
this.b2 = b2;
this.b3 = b3;
}
public void setB1(String b1){
this.b1 = b1;
}
public String getB1(){
return b1;
}
...
}
これらのパラメータはどこかで提供する必要があります。これは最もエレガントな方法です。 – 11thdimension
パラメータをカプセル化するクラスの作成を検討してください。 (あなたはコンストラクタを呼び出していますが、コンストラクタをインスタンス化していません。 – bradimus