2017-08-03 80 views
0

我正在編寫一個程序,其中有相當多的方法在一個特定的類中,因此我決定編寫一個抽象類來幫助跟蹤這些方法。關於java中抽象類的查詢

現在,考慮一下:我已經在抽象類和其他類(它擴展了抽象類)中聲明瞭一個抽象方法,我想重寫此方法,但訪問權限降低爲私有。在這裏,編譯器給出了一個問題。它表示試圖分配較弱的訪問權限正在得到滿足,這是不允許的。如果我試圖將抽象類中的方法聲明爲受保護的(我也將私有的方法更改爲在子類中保護),它說抽象和保護的修飾符不能一起使用。

那麼,我該怎麼辦?我是否必須在兩個課程中使方法包訪問或公開?如果是這樣,我有沒有辦法可以將這些方法私有化?

請注意,我只要求抽象類,而不是所有的類。

+2

抽象類如何幫助「跟蹤方法」? –

+1

你絕對可以有一個'受保護的抽象'方法。 – shmosel

+1

順便說一句,這看起來像一個[XY問題](http://xyproblem.info/)。你應該詳細說明你想要完成什麼。 – shmosel

回答

1

這是什麼意思,它不能是protected abstract - 當然它可以

而你想要做的事情基本上被編譯器和語言本身所禁止。

0

您的問題的答案是:您可以做任何事情來減少在父類中聲明的方法的可見性。

如果您可以通過在一個抽象的父類中「跟蹤方法」來重述您嘗試完成的內容,您可能會得到一個不同的解決方案。