如果类的内部类扩展了外部类,则它可以是自身的“子类” 因此,类以某种方式扩展自己而不抛出任何异常。那么,它真的意味着一个类本身也是它的子类吗?
感谢。
答案 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...
}
}
然后是的,这是可能的。但请注意,这些是两个完全独立的类,除非事实是一个在另一个内部。