[英]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.