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... } }
那么是的,这是可能的。 但请注意,这是两个完全独立的类,除非一个是另一个内在的事实。
- 用java中的变量inheritance
- 为什么Java允许来自接口的多重inheritance,而不是来自抽象/具体类
- 如何只实现抽象类的某些方法?
- Java对象用jackson将列表扩展到Json
- 尝试在位于其他包的子类中使用受保护的构造函数时,Eclipse显示错误
- 为什么实现类不能将覆盖方法定义为静态?
- 关于@ ForceDiscriminator / @ DiscriminatorOptions(force = true)的使用
- 相当于BeanUtils.copyProperties的Objective c。
- 表每子类inheritance关系:如何在不加载任何子类的情况下查询Parent类??? (hibernate)