受保护的成员是否是公共API的一部分?

由于受保护的成员可以通过子类访问,因此它们是否是公共API的一部分?因此,它们是否具有与明确的公共成员相同的向后兼容性要求?

我猜想这个问题会变得更复杂,例如private[foo](例如Scala)。随意回答这个问题或不回答。

iquw330860503 回答:受保护的成员是否是公共API的一部分?

是,是:受保护的成员是导出的(公共)API的一部分,并且具有相同的兼容性要求。

Java将访问修饰符作为其后继的众多JVM和非JVM语言的先驱。而有效Java 对此事有权威性的陈述。

第15项开始:最小化类和成员的可访问性

...私有成员和程序包私有成员都是类实现的一部分,通常不会影响其导出的API。

对于公共类的成员,当访问级别从包私有变为受保护时,可访问性将大大增加。受保护的成员是该类导出的API的一部分,必须得到永久的支持。同样,导出类的受保护成员表示对实施细节的公开承诺。对受保护成员的需​​求应该相对较少。

本文链接:https://www.f2er.com/2328944.html

大家都在问