2012-06-24 58 views
0

我正在實現訪問中不同類型的訪問方法和變量的不同訪問類型。我有一個包含類的方法和變量,一個子類,以及一個包含main的類的每個控制級別的包。我還有一個主包,帶有一個主類,它還可以測試類和它自己包之外的子類的訪問權限。我用包含具有公共方法和變量的類的包實現了這種做法,但在訪問「來自同一包中的子類」和「來自包之外的子類」(這將是包含類的主包主要提到之前)我的問題是這樣的,當它和它的超類不能公開以允許它被主包訪問時,我怎麼能夠從另一個包訪問該子類?測試所有級別的訪問修飾符控制

+1

你爲什麼要這麼做?你想達到什麼目的?與其尋找出現這種語言的角落案例,不如嘗試對這些功能進行某種現實的使用,並瞭解它在真實情況下的運作方式。我一直在編程Java多年,並從未想過太多關於可見性:一般來說,讓事物看起來像他們需要的一樣,但不可見。 – Bohemian

+0

等等,爲什麼你再問這個問題? - 可能重複的[練習訪問修飾符](http://stackoverflow.com/questions/11165942/practicing-access-modifiers) –

回答

2

只有兩個訪問級別可用於頂級類別:public和包私有(無修飾符)。這些,讓您的頂級類唯一有意義的可能性:

  • private將沒有任何意義,因爲什麼用一個類只有它才能看到的?
  • protected與包私有相同,除了可見性也被給予擴展類。這是一個概念,只對頂級的會員有意義。
+0

我不明白你如何訪問一個公共類的子類*公共類訪問變量和其他包方法時,子類也必須是公開的在同一個包和一個包不能存在兩個公共類 如果我有 包public1上 公共類public1上 { 公共無效美孚( ){} } 我怎樣纔能有另一個公共類作爲一個子類來調用另一個包中的方法? –