jvm如何处理java中的抽象类

jvm如何处理java中的抽象类,java,abstract,Java,Abstract,关于java中的抽象类,我有一个非常基本的问题 正如我们所知,我们不能创建抽象类的实例,那么JVM如何处理java中抽象类的实例化 我们可以在抽象类中定义一个参数化构造函数,也可以定义另一个扩展抽象类的构造函数。在这种情况下,谁创建抽象类的实例并调用抽象类的构造函数 我想了解JVM如何管理抽象类的对象创建。JVM不能实例化抽象类,它只能实例化抽象类的非抽象子类的实例。创建实例意味着在内存中分配容纳所有非静态字段所需的空间,然后通过调用构造函数初始化这些字段。JVM不能实例化接口或抽象类 看一看

关于java中的抽象类,我有一个非常基本的问题

正如我们所知,我们不能创建抽象类的实例,那么JVM如何处理java中抽象类的实例化

我们可以在抽象类中定义一个参数化构造函数,也可以定义另一个扩展抽象类的构造函数。在这种情况下,谁创建抽象类的实例并调用抽象类的构造函数


我想了解JVM如何管理抽象类的对象创建。

JVM不能实例化抽象类,它只能实例化抽象类的非抽象子类的实例。创建实例意味着在内存中分配容纳所有非静态字段所需的空间,然后通过调用构造函数初始化这些字段。

JVM不能实例化接口或抽象类

看一看

在JVM中,每个对象都有一个指向其类的指针,但只指向其具体类,而不指向其接口或抽象类。如果我们得到一个对象的内存地址,我们可以很容易地得到它的类的地址。此方法仅适用于可以创建实例的类接口和抽象类都不能以这种方式使用。

有关更多详细信息,请参阅

对于
抽象类
及其具体的
子类
,当您这样做时:

AbstractClass obj = new ConcreteClass();
new
操作符创建
ConcreteClass
的对象,并调用其构造函数初始化所创建对象的状态。在此过程中,抽象类的构造函数也从
ConcreteClass
构造函数调用,以初始化抽象类中对象的状态


因此,基本上没有创建
AbstractClass
的对象。只是调用了它的构造函数来初始化对象的状态。

如果抽象类对象不是由JVM内部创建的,而是只调用它的构造函数来初始化状态。然后,在没有实例化的情况下,初始化的点是什么以及对象初始化的执行点是什么。

如果抽象类具有参数化构造函数,并且子类扩展了抽象类,则可能重复,抽象的构造函数是如何调用的?如果你能从JVM内部的角度解释一下,我需要一个更好的答案。JVM如何处理抽象类是否有构造函数,JVM如何调用构造函数。欢迎来到stack over flow,虽然我们很欣赏你的答案,但这篇文章非常古老,你的答案与现有的答案基本相同。集中精力回答新问题:)