Java-受保护和公共之间的风险

时间:2018-01-22 16:14:32

标签: java inheritance public protected

当我尝试从受保护访问级别的抽象类访问和覆盖继承的抽象函数时,

protected <ReturnDataType> <FunctionName>() {

删除受保护的访问类型后,Eclipse会抛出此错误

无法降低&lt;继承方法的可见性继承的类&gt;

使用quickfix为其提供了受保护的访问类型。

我知道,对于这个覆盖函数,我也可以将访问类型设置为Public。

现在,我的问题是:将此功能作为公共使用的风险/问题是什么?

2 个答案:

答案 0 :(得分:0)

这是一种有助于保护代码免受错误影响的方法。存在没有封装的编码语言。在最极端的情况下,任何代码都可以更改任何数据,我们可能根本不希望这样做。训练有素的编码器将减少操作给定类型数据的位置数量,但是可能仍然不明显所有可能使对象*处于不同状态的操作组合。当他们的代码被用作别人代码的一部分时,情况会变得更糟。因此,更改这些accessTypes的风险在于,如果使用不当,可能会导致错误。

答案 1 :(得分:-1)

所有公共做的是允许通过另一个包访问变量,因此如果有人将您的项目作为外部库导入到他们的项目中,他们将能够访问全局变量。此页面可能对您有用:https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html