Java 为什么在不相关的类中可以访问受保护的方法?
我使用Eclipse ide编写了以下代码: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
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();//如果两个类在同一个包中,则可以调用受保护的方法
有关更多详细信息,请参阅。如果调用类在同一个包中,它将能够调用受保护的方法。如果这不是您想要的,您应该将方法设置为私有。同一个包中的类不是“无关的”