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

Outer.Inner 类型必须实现继承的抽象方法 HelloSayers.sayHello()。

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

4

1 回答 1

2

是的,你错了。

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

即 的每个实例都Inner包含对相应Outer对象 ( Outer.this) 的引用。如果您在 java 代码中访问Outerfrom的成员Inner,编译器只会将其转换为Outer对对象引用的成员的访问Inner。该类Inner不包含这些成员。

于 2015-04-07T16:33:44.123 回答