我定義了一個超級類,它的成員變量是私有的,函數是公共的。我想讓超類的方法在子類中可訪問,但不能從該類的外部訪問。如何創建一個父類的成員函數變爲私有的
換句話說,超類的方法在子類中變爲私有的,這樣它們就不能從類外部訪問。這種行爲是否可行?
我定義了一個超級類,它的成員變量是私有的,函數是公共的。我想讓超類的方法在子類中可訪問,但不能從該類的外部訪問。如何創建一個父類的成員函數變爲私有的
換句話說,超類的方法在子類中變爲私有的,這樣它們就不能從類外部訪問。這種行爲是否可行?
我認爲您正在尋找protected
修飾符。 protected
方法可以從相同包中的類訪問並擴展類。
另一種方法是使用模板方法模式控制的反轉:基類使用抽象方法定義非抽象方法中的行爲,子類必須覆蓋 - 以便子類只需要擴展特定部分而不必關心其餘的事情。
從技術上講,java沒有這個用例的修飾符,但保護讓你靠近,但允許訪問包內。
將您的超類的方法聲明爲'protected' –
您無法減少子類中的可見性。這是Java語言設計的一部分,您可以通過閱讀JLS或在任何IDE中嘗試使用它。 –