如何使用构造函数初始化抽象类中的字段



我有抽象类Human和许多子类(超过10个(。我所需要做的就是将值设置为字段"famName"。它是字段"名称"和"姓氏"("名称"+"+"姓氏"(的总和。它看起来像

抽象类

public abstract class Human{
private String name;
private String fam;
//Setters and Getters
/*
private String famName = this.getName() + this.getFam();
*/
public Human(fam,name){
this.fam = fam;
this.name = name;
this.famName = this.fam + " " + this.name;
}

}

实体类

public class Policeman extends Human{
//fields
}

所以,问题是"如何在抽象类中初始化这个字段 famName",避免在子类的构造函数中使用它?谢谢

根据你的问题...看看这个。

您的抽象类:

public abstract class Human {
private String name;
private String fam;
private String famName;

public Human(String fam, String name) {
this.fam = fam;
this.name = name;
this.famName = this.fam + " " + this.name;
}
public String getFamName() {
return famName;
}
}

实体类:

在这里,您在Policeman Constructor中调用超级构造函数(来自Human Class(。

public class Policeman extends Human {
public Policeman(String fam, String name) {
super(fam, name);
}
}

可能的用途:

public static void main(String[] args) {
Policeman policeman = new Policeman("Doe", "John");
policeman.getFamName();
}

在这种情况下,你不需要对人类类使用抽象。您可以使用超类和子类。子类继承然后 来自超级类。

最新更新