我意识到这是一个非常基本的问题,但它是一个一直困扰我的。正如我理解的事情,如果你宣布一个领域的私人Java然后它是看不见外面的那类。如果它是保护,那么它可以继承的课程以及任何在同一封装(纠正我,如果这些定义是不正确的).

这是不是意味着这是不可能宣布一个领域是可以访问的唯一继承的课程,而不是其他的非继承的课程相同的包吗?

我理解,有办法绕过这个问题,但有实例的时候,你会想到有这样的行为?

显然上述问题适用的方法以及领域。

非常感谢。

有帮助吗?

解决方案

请参阅: http://java.sun.com/文档/书籍/教程/ JAVA / javaOO / accesscontrol.html 结果 包>子类,你不能只由子类中可见,但不能从同一个包。

类的字段

其他提示

基本上:

  • 私人:只能通过类。
  • 公众:可通过任何类。
  • 保护:可通过类的所有继承的课程和课程的目前包 (编辑).
  • 没有范围的定义:可通过所有课程目前包。

更多信息 在这里,.

是,Java的保护访问是那样有点奇怪。我不能马上明白为什么它的可取的。个人不打扰我的字段的,因为我不喜欢非私有字段反正(除常数等),但同样适用于其他成员。

.NET不具有包/命名空间访问能见度的概念在所有,但它有一个替代的是组件(认为“jar文件” - 不完全一样,但接近)。坦白说,我想有命名空间的的部署单元可见性选项,但似乎我注定要失望......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top