gpt4 book ai didi

java - 使用java中父类(super class)的实例创建构造函数

转载 作者:行者123 更新时间:2023-12-02 04:25:24 25 4
gpt4 key购买 nike

我有这个类(我们称之为 A)和一个继承类 (B),我想使用 A 的实例为 B 创建一个构造函数,如下所示:

public B(A a){
super = a;
...
}

显然上面的代码不起作用,但是有没有办法做到呢?我可以创建 A 的另一个实例,每个字段具有相同的值,但这似乎毫无用处,因为我已经有一个实例,而且我只需要添加一些字段即可使其成为 B 类。

最佳答案

您不能将一些字段“添加”到一个类的实例中以使其成为另一个类的实例。这些字段被添加到类中,而不是类的实例中。所以我想你会有以下选择:

  • 由于 B 是从 A 派生的,因此 B 的构造函数必须接收已发送给 A 的信息(加上一些额外的字段)。这意味着您将 A 实例中的值复制到 B 的新实例
  • 如果您不想从 A 的实例复制值并继续使用该实例,那么最好的办法是定义不是从 A 派生的 B,并在 B 中拥有一个类型的字段A加上您想要的额外字段。

      public B {
    private A a;
    private int somefield;
    public B( A a, int somefield) {
    this.a = a;
    this.somefield = somefield;
    }

关于java - 使用java中父类(super class)的实例创建构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com