先看下面表格:
作用域
|
當(dāng)前類(lèi) |
同一package |
子孫類(lèi)
|
其他package |
public |
√
|
√
|
√
|
√
|
protected
|
√
|
√
|
√
|
×
|
default |
√
|
√
|
×
|
× |
private |
√
|
×
|
×
|
×
|
不寫(xiě)時(shí)默認(rèn)為default
我們先看類(lèi):
public class Test 可以在任何地方訪(fǎng)問(wèn),無(wú)論是否為當(dāng)前package
class Test 只允許當(dāng)前的package使用,不允許其它package使用
class 不與許prirvate和protected ,所以不討論了
我們?cè)倏捶椒?br />
private 的只允許類(lèi)自己使用,子類(lèi)都不可見(jiàn)。但允許inner類(lèi)調(diào)用,因?yàn)閕nner類(lèi)屬于他自己。
class Test 里面的方法
public 和default和protected 方法,允許同包的訪(fǎng)問(wèn),因?yàn)轭?lèi)是default的,所以方法不可能大于它
public class Test 里面的方法
private 只允許自己內(nèi)部訪(fǎng)問(wèn)
default 只允許同包的訪(fǎng)問(wèn)
protected 只允許同包和子類(lèi)訪(fǎng)問(wèn)
public 可以任意訪(fǎng)問(wèn)