为什么一个内部 class 被迫实现它的接口方法,即使外部 class 有它?

Why is an inner class forced to implement its interface methods, even if the outer class has it?

public class Outer{
  public void sayHello(){ System.out.println("Hello!");}
  public class Inner implements HelloSayers{}
public interface HelloSayers{
  public void sayHello();
}

The type Outer.Inner must implement the inherited abstract method HelloSayers.sayHello().

但问题是内部 class 应该被视为外部方法的实现者。我错了吗?

是的,你错了。

Inner 可以 访问 Outer 的成员,但这并不意味着它共享这些成员。

Inner 的每个实例都包含对相应 Outer 对象 (Outer.this) 的引用。如果您在 java 代码中从 Inner 访问 Outer 的成员,编译器只是将其转换为对 [=10] 引用的 Outer 成员的访问=] 对象。 Inner class 不包含这些成员。