簡體   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