2011-07-15 15 views
4

我將一個對象引用傳遞給一個Util類。我試圖調用上的Util類保護的方法,但我得到一個編譯時錯誤 -什麼是從另一個對象訪問的受保護的方法訪問級別

The method setPositionChild(Field, int, int) from the type Manager is not visible 

要調用一個受保護的方法是,在僅實現類需要它?我能否將引用傳遞給外部類並從那裏調用引用?

+0

可能重複[在Java中,公共,默認,保護和私人之間有什麼區別?](http://stackoverflow.com/questions/215497/in-java-whats-the-difference-between-public -default-protected-and-private) –

回答

7

受保護的方法可以從子類訪問。如果您想從任何課程中訪問,請將該方法公開。看到詳細信息here

也正如@Sean Patrick Floyd所述,來自同一包中的類!

+2

和來自同一個包中的類! –

+0

「受保護的方法可以從子類訪問」。如果這不是「受保護的方法可以從子類實現中訪問」,因爲當我將子類的引用傳遞給外部類並從該外部類調用該方法時會引發編譯時錯誤? –

+1

@ user470184除非您嘗試從(a)其子類中的某處訪問它,或者(b)位於相同包中的類中,否則無法訪問實例的受保護方法。擁有對象的實例不允許您訪問其受保護的方法。我從你的描述中瞭解到,你需要公開這種方法。 – Nishant

相關問題