2014-07-01 43 views
-2

我定義了一個超級類,它的成員變量是私有的,函數是公共的。我想讓超類的方法在子類中可訪問,但不能從該類的外部訪問。如何創建一個父類的成員函數變爲私有的

換句話說,超類的方法在子類中變爲私有的,這樣它們就不能從類外部訪問。這種行爲是否可行?

+0

將您的超類的方法聲明爲'protected' –

+7

您無法減少子類中的可見性。這是Java語言設計的一部分,您可以通過閱讀JLS或在任何IDE中嘗試使用它。 –

回答

1

我認爲您正在尋找protected修飾符。 protected方法可以從相同包中的類訪問並擴展類。

另一種方法是使用模板方法模式控制的反轉:基類使用抽象方法定義非抽象方法中的行爲,子類必須覆蓋 - 以便子類只需要擴展特定部分而不必關心其餘的事情。

0

從技術上講,java沒有這個用例的修飾符,但保護讓你靠近,但允許訪問包內。

相關問題