2012-12-06 39 views
1

同一包中的非子類與不同包中的子類有什麼區別?包和接口(訪問保護)

+4

是的,但問題是什麼? –

+0

我不知道你是如何發佈這個問題的,因爲你是新成員(今天)?你的問題很小。對於新成員有一些限制。 –

+0

您需要了解java的基礎知識 –

回答

2

給定一個類,A

  • 在同一個包A非子類可以訪問在不同的包的AA

  • 子類公共和包私有方法可以訪問公共和受保護的方法A


注:沒有用於包私人保護無關鍵字 - 它沒有指定其他時選擇的保護。

public void thisIsPublic(...) 

protected void thisIsProtected(...) 

void thisIsPackagePrivate(...) 

推薦閱讀:Controlling Access to Members of a Class

2

「無子類在同一個包和子類在不同的包」,而問題是「什麼時候會發生,我們宣佈在同一封裝中的非小類&子類在不同的包?
當你正在處理範圍說明符這一點很重要。這是顯示的差異表。

     Private  No Modifier Protected  Public 

1. Same class   Yes    Yes   Yes   Yes 

2. Same package   No    Yes   Yes   Yes 
    subclass 
3. Same package   No    Yes   Yes   Yes 
    non-subclass 
4. Different package No    No   Yes   Yes 
    subclass 
5. Different package No    No   No   Yes 
    non-subclass 

此表來自「Herbert Schildt」的書籍「Java The Complete Reference」