Java 为什么在不相关的类中可以访问受保护的方法?

Java 为什么在不相关的类中可以访问受保护的方法?,java,eclipse,compilation,protected,access-specifier,Java,Eclipse,Compilation,Protected,Access Specifier,我使用Eclipse ide编写了以下代码: public interface X { final public static int SOME_CONST = 0; } public class Handle implements X { protected void methodHandle () { } //... } public class User implements X { Handle handle = new Handle(); private void

我使用Eclipse ide编写了以下代码:

public interface X
{
  final public static int SOME_CONST = 0;
}
public class Handle implements X
{
  protected void methodHandle () { }
 //...
}

public class User implements X
{
  Handle handle = new Handle();
  private void methodUser ()
  {
    Y y = new Y()  // anonymous inner class
    {
      public void methodY ()
      {
        handle.methodHandle (); // <--- why this is NOT giving error ?
      }
    }
  }
}
公共接口X
{
最终公共静态int一些常数=0;
}
公共类句柄实现X
{
受保护的void methodHandle(){}
//...
}
公共类用户实现X
{
句柄=新句柄();
私有void methodUser()
{
Y=new Y()//匿名内部类
{
公共无效方法()
{

handle.methodHandle();//如果两个类在同一个包中,则可以调用受保护的方法


有关更多详细信息,请参阅。

如果调用类在同一个包中,它将能够调用受保护的方法。如果这不是您想要的,您应该将方法设置为私有。

同一个包中的类不是“无关的”