天天看點

java private super_java – 在子類中使用super關鍵字通路超類私有字段

對于編碼項目,我有一個包含嵌套類的類.嵌套類在同一個外部類中進行子類化.其目的是讓外部類包含嵌套類的一些執行個體,它可以傳遞給外部類的其他執行個體.

嵌套子類允許外部類修改内容,而超類允許讀取内容并調用某些方法.是以,超類對象被交給其他對象以連結鍊中的外部類對象.

我關心通路修飾符的問題.這是一個簡約的代碼示例:

abstract class OuterClass {

protected class NestedSuperClass {

private T data;

public NestedSuperClass (T t) {

this.data = t;

}

public T getOutput() {

return data;

}

}

protected class NestedSubClass extends NestedSuperClass {

public NestedSubClass (T t) {

super(t);

}

protected void setOutput(T t) {

super.data = t;

}

}

}

當查找一些文檔時,我被通路超級類的私有字段的能力感到困惑,沒有在任何地方被提及.有沒有資源解釋為什麼子類被允許以這種方式修改超類的私有字段?

我完全可以這樣工作.我也注意到,似乎可以使用标記為受保護而不是私有的資料,而不使用超級關鍵字.我最感興趣的是提供超級關鍵字的這種能力的任何文檔.提前緻謝.