Java:类是否是其自身的子类?

时间:2009-05-08 12:29:44

标签: java class inheritance

如果类的内部类扩展了外部类,则它可以是自身的“子类” 因此,类以某种方式扩展自己而不抛出任何异常。那么,它真的意味着一个类本身也是它的子类吗?

感谢。

6 个答案:

答案 0 :(得分:7)

类不是其自身的子类。内部类可以是其他类的子类,但这是一个单独的类。您可以通过比较调用getClass()时获得的Class实例来验证这一点。

答案 1 :(得分:3)

子类的定义是它扩展了另一个类并继承了该类的状态和行为。类本身不能扩展自身,因此它不是子类。允许内部类扩展外部类,因为它们是两个不同的类。

答案 2 :(得分:3)

public class ParentClass {

    int intField = 10;

    class InnerClass extends ParentClass {

    }

    public static void main(String... args) {
        ParentClass parentClass = new ParentClass();
        InnerClass innerClass = parentClass.new InnerClass();

        System.out.println(innerClass.intField);

        InnerClass innerClass2 = innerClass.new InnerClass();
    }
}

答案 3 :(得分:2)

实际上JVM现在没有关于内部类的任何内容。

编译后所有内部类都成为常用的类,但编译器为它们提供了外部类的所有字段的访问者。

在OOP理论中,class不能是它的子类或超类。

答案 4 :(得分:1)

没有。内部类与外部类完全不同。除非我误解你的问题......

答案 5 :(得分:0)

如果你定义一个子类将其自身定义为:

public class Test {

    public static void main(String[] args) {
        // whatever...
    }

    class TestChild extends Test {
        // whatever...
    }
}

然后是的,这是可能的。但请注意,这些是两个完全独立的类,除非事实是一个在另一个内部。