为什么protected可以在没有javainheritance的同一个包中访问?

Modifier Class Package Subclass World public YYYY protected YYYN no modifier YYNN private YNNN 

  public class a { protected int x; } public class b { b() { a A=new a(); Ax=9;//why we can access this field ? } } 

请帮助我了解Java中受保护的具体工作

为什么? 因为这就是Java编程语言的设计方式。 没有更多的东西。

可以从中获取protected东西

  • class级本身,
  • 同一个包中的类(如果它们是子类,则无关紧要),
  • 子类(如果它们在同一个包中则无关紧要)。

这与C ++不同,但Java不是C ++,因此它不一定以相同的方式工作。