扩展内部 class 和扩展嵌套 class 之间的区别?

difference between extends inner class and extends nested class?

class OuterClass
{
    static class InnerClassOne
    {
        //Class as a static member
    }

    class InnerClassTwo
    {
        //Class as a non-static member
    }
}


class AnotherClassOne extends OuterClass.InnerClassOne
{

}


class AnotherClassTwo extends OuterClass.InnerClassTwo
{
    public AnotherClassTwo()
    {
        new OuterClass().super();  //accessing super class constructor through OuterClass instance
    }
}

我有论文 classes,为什么当从嵌套 class 扩展时我们不调用外部 class 构造函数,但是当从内部 class 扩展时应该调用外部通过外部对象构造函数,那么有什么区别,为什么??

原因很简单。要访问 static 属性 您不需要创建对象,即您不需要实例化 class.

但是如果你想访问一个非静态 属性你首先需要创建一个对象class然后使用它。

所以在你的情况下,当你想扩展 InnerClassTwo(这是一个内部 class 和非静态)时,你必须将它与外部 [=21= 的构造函数相关联] AnotherClassTwo,因为它可以被认为是那个外部 class.

的 属性