【发布时间】:2023-04-09 14:56:01
【问题描述】:
在 Java 中,我们有四个访问说明符:public、protected、package-private(默认)和private。这是wellknown,对我来说不是问题。
我的问题是关于protected 的命名。如the table here 所示,为字段提供 package-private 的默认访问说明符可防止包外的子类使用它,但应用关键字 protected 实际上并不能保护它——相反,它会打开它到任何包的子类。
那么,protected 为什么不保护东西呢?为什么它比没有修饰符更少限制?
【问题讨论】:
-
与公共相比,它受到保护...
-
public、protected和private访问级别是从 C++ 复制而来的。包私有是 Java 独有的。我猜他们使用与 C++ 相同的名称只是为了熟悉并且不想为包级别添加语法。 -
如果默认情况下受保护,您可以问同样的问题。我不明白为什么这是一个问题
-
因为设计语言的人决定这样做。
标签: java terminology semantics access-specifier