Java- 受保护和 Public 之间的风险

Java- Risk between Protected and Public

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

protected <ReturnDataType> <FunctionName>() {

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

无法降低从

继承的方法的可见性

通过为其提供受保护的访问类型的快速修复解决了这个问题。

我知道,我也可以将访问类型设置为 Public 以用于此重写函数。

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

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

这是一种帮助防止代码出错的方法。存在没有封装的编码语言。在最极端的情况下,任何代码都可以更改任何数据的任何部分,而我们可能根本不希望这成为可能。训练有素的编码人员会减少对给定类型数据进行操作的位置的数量,但可能仍然无法将所有可能使对象*处于不同状态的操作组合显而易见。当他们的代码被用作其他人代码的一部分时,情况会变得更糟。因此,更改这些 accessType 的风险在于,如果使用不当,可能会导致错误。