Java以何种方式保持方法只能由类和子类使用?

时间:2016-05-13 21:33:39

标签: java inheritance

我完全了解Java中publicprotectedprivate的工作原理。我想知道是否有办法模仿私人和受保护之间的修饰符。我只想要一个班级及其子女能够访问其子女。

我想这样做,因为我有一个类Savable来存储int databaseIDSavable有一个save()方法,用于存储DBID,然后调用protected abstract ContentValues getSaveData ()以从其子节点获取任何其他信息以写入数据库。然而,这是不安全的设计。 ContentValues将存储所有对象信息,私有或不写入数据库。

现在,虽然我可以在Savable中保存一个抽象方法,但我希望保留现在的结构,因为我稍后会将数据添加到Savable类,并且我宁愿永远不必将这些数据公开给用户。

那么,有没有办法在Java中模仿仅限子项的修饰符?如果没有,我可以存储用户在getSaveData()中提供的所有数据的加密值。

请求的代码:已删除,因为不再需要。

3 个答案:

答案 0 :(得分:4)

  

那么,有没有办法模仿Java中的仅限儿童修饰符?

不。我们唯一获得的访问修饰符是您列出的修饰符。还有"默认" visibility,aka" package-private",但这不会使子类可以访问元素。所以你可以使用protected而不用担心它。

听起来更好的解决方案可能是您的代码的重构,但在您的问题中没有太多具体的内容。

答案 1 :(得分:4)

我能想到的唯一方法是创建方法protected,并将类放在自己的包中。

答案 2 :(得分:0)

如果你自己在写孩子,那么你可以让他们final

将它与protected修饰符混合可以得到你想要的东西。