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()。
但问题是内部类应该被视为外部方法的实现者。我错了吗?
答案 0 :(得分:2)
是的,你错了。
Inner
可以访问 Outer
的成员,但这并不意味着它会共享这些成员。
即。 Inner
的每个实例都包含对相应Outer
对象(Outer.this
)的引用。如果您在java代码中从Outer
访问Inner
的成员,则编译器只会将其转换为对Outer
对象引用的Inner
成员的访问权限。 Inner
类不包含这些成员。