public/private/protected/default作用域的比較
阿新 • • 發佈:2018-12-10
作用域與可見性 | 當前類 | 同一package | 子類 | 其他package |
---|---|---|---|---|
public | 能 | 能 | 能 | 能 |
private | 能 | 否 | 否 | 否 |
protected | 能 | 能 | 能 | 否 |
default | 能 | 能 | 否 | 否 |
- public 表明該成員變數或方法對所有類或物件都是可見的,所有類或物件都可以直接訪問。
- private 表明該成員變數或方法是私有的,只有當前類對其具有訪問許可權,除此之外的其他類或者物件都沒有訪問許可權。
- protected 表明成員變數或方法對該類自身,與它在同一個包中的其他類,,在其他包中的該類的子類都可見。
- default 表明該成員變數或方法只有自己和與其位於同一包內的類可見。若父類與子類位於同一包內,則子類對父類default成員變數或方法都有訪問許可權;若父類與子類位於不同的package內,則沒有訪問許可權。
需要注意的是,這些修飾符只能修飾成員變數,不能用來修飾區域性變數。private與protected不能用來修飾類(只有public、abstract或final能用來修飾類)。