You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

抽象类会被子类实例化吗?后台是否创建抽象类实例?

抽象类实例创建问题解答

虽然无法直接实例化抽象类,但在以下示例中使用super关键字引用了抽象类的实例变量:

public abstract class Abstract {

    protected int n1;
    protected int n2;

    public Abstract(int n1, int n2) {
        this.n1 = n1;
        this.n2 = n2;
    }
}

public class Instance extends Abstract {

    public Instance(int n1, int n2) {
        super(n1, n2);
    }

    public int makeSum() {
        return super.n1 + super.n2;
    }

    public static void main(String[] args) {
        Instance myInstance = new Instance(1, 2);
        System.out.println(myInstance.makeSum());
    }
}

问题:后台是否会创建抽象类的实例?

不会单独创建抽象类的实例。

当你实例化子类Instance时,JVM会先调用抽象父类Abstract的构造方法,目的是初始化子类实例中属于父类的成员变量,但这并不意味着生成了一个独立的抽象类对象。整个被创建的对象本质上是Instance类型的实例,父类的成员只是作为这个子类实例的一部分存在。super关键字只是用来访问父类的成员,而非指向一个单独的父类实例。

内容的提问来源于stack exchange,提问作者zozo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:57:05