Javaでサブクラスで親クラスの属性を上書きする方法は?
サブクラスは、親クラスのプロパティに直接アクセスすることはできません。なぜなら、親クラスのプロパティは通常プライベートまたはプロテクトされています。しかし、サブクラスは継承とメソッドオーバーライドの仕組みを通じて、親クラスのプロパティを間接的に変更できます。手順は次のとおりです。
- 例えば、親クラスで変更する属性をprotectedで宣言するか、getter、setterメソッドを用意する。
public class Parent {
protected int attribute;
public int getAttribute() {
return attribute;
}
public void setAttribute(int attribute) {
this.attribute = attribute;
}
}
- 親クラスのプロパティとメソッドを継承することで、子クラスで親クラスのプロパティを間接的に変更する。例えば:
public class Child extends Parent {
public void modifyAttribute(int newValue) {
setAttribute(newValue); // 通过调用父类的setter方法来修改父类的属性
}
}
親クラスの属性を修正するには、サブクラスのmodifyAttributeメソッドをコールします。
親クラスのプロパティがprivateの場合、派生クラスからは直接アクセス、更新ができないことに注意しましょう。この場合、親クラスにpublicなgetter/setterメソッドを用意することで、親クラスのprivateプロパティへのアクセス、更新を間接的に実現できます。