継承に関するいくつかの問題があります(ここの学生)。私は1つの継承されたプライベートフィールドを私が作る各サブクラスに利用できるようにする必要があります。明らかにサブクラスは継承されたフィールドにアクセスすることはできませんが、継承されたプライベートフィールドがそのオブジェクトの一部である新しいオブジェクトが作成されたときには、私の目的のために、各サブクラスはその継承されたフィールドのための独自の特定の値を持つ必要があります。私の教授は、私はまた、その新しいフィールドを作成するために、私のスーパークラスの内部のsetterメソッドを使用してすることができ、そこから私は混乱していていることを教えしかし継承されたフィールドに特定の値を追加する
Public class A {
private int x = 0;
public A(int n) {
x = n;
}
public int useX() {
return x;
}
}
Public class B Extends A {
int n = 1;
public B() {
super(n);
}
useX(); // Return 1?
}
Public class C Extends A {
int n = 2;
public B() {
super(n);
}
useX(); // Return 2?
}
:私の最初の試みは、次のようになります。誰かが正しい方向に私を向けるのを助けることができますか?
投稿したコードはコンパイルされません( 'B'と' C'には 'n'がなく、' super'の前には何もできません)。あなたがそれを修正しても、私はあなたのアプローチが正しいと思います。コンストラクタを使用すると、値に無制限に無制限にアクセスすることなく、値を初期化することができます。 – resueman
私は宣言でintを中止しました。私はそれを修正しました –