在Java中,子類不能直接修改父類的屬性,因為父類的屬性通常被聲明為私有(private)或者受保護(protected)的,只能在父類內部訪問。然而,子類可以通過繼承和方法復寫的機制來間接修改父類的屬性。具體的做法是:
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),那么子類不能直接訪問和修改該屬性。在這種情況下,可以通過在父類中提供公共的(getter和setter)方法來間接訪問和修改父類的私有屬性。