java – 如何在不相关的类中访问受保护的方法?

我在下面用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 ?
      }
    }
  }
}

即使Handle.methodHandle()受到保护,它仍然可以从匿名内部类方法的内部方法调用?它为什么会发生,我错过了什么? Handle和User之间的唯一关系是它们正在实现相同的X.

解决方法:

如果两个类都在同一个包中,则可以调用受保护的方法.

有关详细信息,请参见this.

上一篇:c – 在编译时填充std :: set?


下一篇:TypeError: Cannot read property 'compilation' of undefined