繁体   English   中英

为什么内部类必须强制实现其接口方法,即使外部类具有接口方法也是如此?

[英]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();
}

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

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

是的,你错了。

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

也就是说,每个Inner实例都包含对相应Outer对象( Outer.this )的引用。 如果您在Java代码中从“ Inner访问“ Outer成员,则编译器会将其转换为对“ Inner对象所引用的“ Outer ”成员的访问。 Inner类不包含那些成员。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM