Java:类是自身的子类吗?

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

谢谢。

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

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

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(); } } 

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

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

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

不。内部阶级与外部阶级完全不同。 除非我误解了你的问题……

如果你定义一个类inheritance自己的类:

 public class Test { public static void main(String[] args) { // whatever... } class TestChild extends Test { // whatever... } } 

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