代码之家  ›  专栏  ›  技术社区  ›  me_digvijay

扩展外部类在java中是如何工作的

  •  1
  • me_digvijay  · 技术社区  · 11 年前

    参考本规范中的代码 Question 我想知道外部类的扩展是如何工作的。我的意思是,一个类(内部类)怎么能在两个地方有它的定义(在外部类中由于是内部类,而在其本身中由于扩展了外部类)。当这件事完成后,里面会有什么。

    非常感谢。

    代码

    public class Something {
        private int y;
    
            class IsSomething extends Something {
    
                public void print() {
                    System.out.println("123");
                }
    
            }
    }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   JB Nizet    11 年前

    内部类具有对其外部类的实例的引用。这是一个 第a部分 关系

    如果它扩展了它的外部类,那么它也有一个 是-a 与外部阶级的关系。

    因此,它相当于以下两个顶级类:

    public class Foo {
        ...
    }
    
    public class Bar extends Foo {
        private Foo outerFoo;
        ...
    }
    
    推荐文章