[英]Methods implemented in inner class for an outer class implementing interface
[英]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.