我完全了解Java中public
,protected
和private
的工作原理。我想知道是否有办法模仿私人和受保护之间的修饰符。我只想要一个班级及其子女能够访问其子女。
我想这样做,因为我有一个类Savable
来存储int databaseID
。 Savable
有一个save()
方法,用于存储DBID,然后调用protected abstract ContentValues getSaveData ()
以从其子节点获取任何其他信息以写入数据库。然而,这是不安全的设计。 ContentValues
将存储所有对象信息,私有或不写入数据库。
现在,虽然我可以在Savable
中保存一个抽象方法,但我希望保留现在的结构,因为我稍后会将数据添加到Savable
类,并且我宁愿永远不必将这些数据公开给用户。
那么,有没有办法在Java中模仿仅限子项的修饰符?如果没有,我可以存储用户在getSaveData()
中提供的所有数据的加密值。
请求的代码:已删除,因为不再需要。
答案 0 :(得分:4)
那么,有没有办法模仿Java中的仅限儿童修饰符?
不。我们唯一获得的访问修饰符是您列出的修饰符。还有"默认" visibility,aka" package-private",但这不会使子类可以访问元素。所以你可以使用protected
而不用担心它。
听起来更好的解决方案可能是您的代码的重构,但在您的问题中没有太多具体的内容。
答案 1 :(得分:4)
我能想到的唯一方法是创建方法protected
,并将类放在自己的包中。
答案 2 :(得分:0)
如果你自己在写孩子,那么你可以让他们final
。
将它与protected
修饰符混合可以得到你想要的东西。