私はJavaで2つのクラスを持っています:Fist
クラスはPerson
クラスを拡張しています。私は変数eyecolor
をPerson
に持っています。これはプライベートであり、私はパブリックセッターとゲッターを持っています。説明が必要です:Javaのプライベートアクセス修飾子
私はFistクラスでそれを拡張すると変数を設定することができますし、取得することもできます。
私の質問は、eyecolor
がクラスPerson
のプライベートメンバーの場合、プライベートメンバーを使用する際にエラーが発生しないのはなぜですか?このコードはなぜ機能していますか? eyecolor
データメンバは継承されていますか?
人クラス
package lets_start;
public class Person {
private String eyecolor;
public String getEyecolor() {
return eyecolor;
}
public void setEyecolor(String eyecolor) {
this.eyecolor = eyecolor;
}
}
拳クラス
package lets_start;
public class Fist extends Person {
public static void main(String[] args) {
Fist f = new Fist();
f.setEyecolor("Brown");
System.out.println(f.getEyecolor());
}
}
出力:
Brown
を。 – Carcigenicate
あなたの質問は何ですか。 – Ravi
'Fist'はパブリックゲッターとセッターメソッドを継承します。 _プライベートフィールドは 'Person'クラスのみでアクセスされます。フィールド 'eyecolor'に直接アクセスしようとする' Fist'クラスのメソッドを作ると、コンパイルされません。 – Fildor