【发布时间】:2017-02-01 07:03:51
【问题描述】:
为什么 java 不允许访问父包中的包限制类型?
类似的东西:
Package a
|--Class A
|--Package b
|--Class B
如果类 A 具有包可见性,则无法从类 B 访问类 A。我认为这是有道理的,但显然不是。
这是什么原因?
【问题讨论】:
-
因为 Java 访问修饰符就是 specified to work。像你期望的那样有意义吗?可能;但事实并非如此。
-
JLS 明确指出:“包的分层命名结构旨在方便以常规方式组织相关包,但除了禁止包含子包的包外,其本身没有任何意义具有与该包中声明的顶级类型(第 7.6 节)相同的简单名称。”任何试图辨别为什么该陈述存在的答案更有可能是猜测而不是具体事实。
-
来吧,停在-1,我在问为什么java是这样构想的。
-
“我问的是 java 是不是这样设计的” 你得问问 James Gosling 等人。我们只能猜测。