[英]How to define an interface method to accept a class or any of its subclasses in Java?
[英]Java any way to keep a method usable only by class and subclasses?
我完全了解Java中public
, protected
和private
的工作方式。 我想知道是否可以在私有和受保護之間模擬修飾符。 我只希望一個班級及其子級能夠訪問其子級。
我想這樣做是因為我有一個Savable
類,它存儲一個int databaseID
。 Savable
有一個save()
方法,該方法存儲DBID,然后調用protected abstract ContentValues getSaveData ()
來從其子級獲取任何其他信息以寫入DB。 但是,這是不安全的設計。 ContentValues
將存儲所有對象信息(私有的或不寫入數據庫的信息)。
現在,盡管我可以在Savable
保存一個抽象方法,但我還是希望保留現在的結構,因為稍后我將數據添加到Savable
類中,並且我希望永遠不必將數據公開給用戶。
那么,有什么方法可以模仿Java中僅用於兒童的修飾符? 如果沒有,我可以將用戶提供的所有數據的加密值存儲在getSaveData()
。
要求的代碼:已刪除,因為不再需要。
那么,有什么方法可以模仿Java中僅用於兒童的修飾符?
不。 我們僅有的訪問修飾符是您列出的那些。 還有“默認”可見性,也就是“ package-private”,但這不能使元素可用於子類。 因此,您可能只使用protected
而不必擔心。
聽起來更好的解決方案可能是對代碼進行重構,但是您的問題沒有什么具體的。
我能想到的唯一方法是將方法設置為protected
,並將類放入其自己的包中。
如果你自己在寫孩子,那么你可以使他們final
。
將其與protected
修飾符混合在一起,將為您提供所需的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.