gpt4 book ai didi

java - 实例化继承的构造函数

转载 作者:行者123 更新时间:2023-11-29 06:29:42 25 4
gpt4 key购买 nike

我有两个类 A(父类(super class))和 B(子类),如下所示。我使用 super() 关键字和参数来实例化父类(super class)的构造函数。但是,我正在寻找另一种优雅的方式来执行此操作,而不是在子类中列出父类(super class)的所有参数,因为当父类(super class)的属性数量很大时它会变得冗长。

public class A {

private String a1;
private String a2;
private String a3;

public A (String a1, String a2, String a3){
this.a1 = a1;
this.a2 = a2;
this.a3 = a3;
}

public void setA1(String a1){
this.a1 = a1;
}

public String getA1(){
return a1;
}
...
}

public class B extends A{

private String b1;
private String b2;
private String b3;

public B (String b1, String b2, String b3, String a1, String a2, String a3){
super(a1,a2,a3);
this.b1 = b1;
this.b2 = b2;
this.b3 = b3;
}

public void setB1(String b1){
this.b1 = b1;
}

public String getB1(){
return b1;
}
...
}

最佳答案

However, I'm looking another elegant way of doing this rather than listing all the parameters of the super class in the sub class since it becomes lengthy when the number of attributes for the super class is huge.

嗯,优雅的方法是避免使用“大量”参数。如果你发现你有大量的参数,考虑:

  • 将类分成两个(或更多)部分,因为大量参数通常表明一个类有多个职责
  • 构建器模式(或它的某种变体)可以避免这种重复并且使构造更清晰

构造函数在 Java 中不是继承的,也没有办法继承它们。

关于java - 实例化继承的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39005384/

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