【问题标题】:Nesting Classes嵌套类
【发布时间】:2011-02-01 22:32:57
【问题描述】:

如果我将一个类嵌套在另一个类中,嵌套的类会自动成为父类的子类吗?嵌套类是否可以访问父类的所有公共方法、变量?

抱歉,我主要指的编程语言是 Java!

【问题讨论】:

    标签: java class inner-classes nested


    【解决方案1】:

    如果我将一个类嵌套在另一个类中,嵌套的类会自动成为父类的子类吗?

    没有

    嵌套类是否可以访问父类的所有公共方法、变量?

    如果内部类不是静态的,是的。它还可以访问任何其他成员,不管是静态的还是非静态的,也可以是非公开的。如果嵌套类声明为静态,则没有封闭实例,因此它只能访问外部(“父”)类的静态成员。

    【讨论】:

    • 就在 8 秒前。 :)。但你打字速度比我快。 :)
    • 反之亦然吗?外部类是否可以在不实例化内部类的情况下访问内部类方法/变量?
    • 内部类,如果它不是静态的,也将隐式包含对外部类的引用,因此如果没有它就无法实例化(如果你试图这样做,你会发现例如反射)。如果是静态的,则没有这样的引用。
    【解决方案2】:

    嵌套类不是父类的子类。如果嵌套类不是静态的,它可以访问父类的所有方法和变量。如果嵌套类是静态的,那么它只能访问静态字段和方法。

    【讨论】:

      【解决方案3】:

      这是指什么语言?对于大多数语言来说,内部类和子类是完全不同的东西。内部类是外部类的“成员”,就像字段和方法是外部类的成员一样。就像外部类的任何(静态)方法可以访问所有(静态)类成员一样,通常内部类作为外部类的成员可以访问外部类的所有其他成员。 (但是,这绝对不是所有 OO 语言都如此。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-10
        • 1970-01-01
        • 2016-09-02
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多