java訪問控制修飾符總結
阿新 • • 發佈:2018-12-12
Java中,可以使用訪問控制符來保護對類、變數、方法和構造方法的訪問。Java 支援 4 種不同的訪問許可權。
public : 對所有類可見。使用物件:類、介面、變數、方法。
protected : 對同一包內的類和所有子類可見。使用物件:變數、方法。 注意:不能修飾類(外部類)。
default (即預設,什麼也不寫): 在同一包內可見,不使用任何修飾符。使用物件:類、介面、變數、方法。
private : 在同一類內可見,只在當前類內可訪問。使用物件:變數、方法。 注意:不能修飾類(外部類)。
可以理解為:public > protected > default > private
表格表示為:
修飾符 | 當前類 | 同一包內 | 子孫類(同一包內) | 子孫類(不同包) | 其他包 |
---|---|---|---|---|---|
public | 是 | 是 | 是 | 是 | 是 |
protected | 是 | 是 | 是 | 是/否 | 否 |
default | 是 | 是 | 否 | 否 | 否 |
private | 是 | 否 | 否 | 否 | 否 |
protected修飾時:
子類與基類在同一包中:被宣告為 protected 的變數、方法和構造器能被同一個包中的任何其他類訪問;
子類與基類不在同一包中:那麼在子類中,子類例項可以訪問其從基類繼承而來的 protected 方法,而不能訪問基類例項的protected方法。