只需要使用构造函数中的2个属性

时间:2017-03-09 03:30:58

标签: java object inheritance attributes associations

我正在创建一个对象“Person”,它有4个属性:String name,String lastName,char gender和int age。这个类已经有一个工作正常的构造函数,它将信息扩展到我拥有的其他对象。

但是,我现在有一个名为“birthdayBoy”的特定对象,它只需要其中2个属性加上我添加的2个新属性(String birthdayCity,String school)。如果我从“Person”对象继承构造函数,它将询问我4个属性的链(String,String,char,int),这对我不起作用。我还没有创建Main类来调用和测试对象,到目前为止我只创建了包含这些对象的类,原因是因为我想知道这是否需要修复类本身或我应该创建一个额外的类,它只从“Person”类继承其中的2个属性。

任何帮助都表示赞赏。

2 个答案:

答案 0 :(得分:0)

在你的基类" Person"中,有2个构造函数。一个需要4个参数,另一个接受2个参数。您可以选择尽可能多的重载构造函数。

答案 1 :(得分:0)

您可以在Person中创建一个构造函数,该构造函数只有BirthdayBoy所需的两个参数,然后在BirthdayBoy中使用2个额外的必需参数对其进行扩展

public class Person{
    String firstName;
    String middleName;
    String lastName;
    int age;

    public Person(String fName, String lName){
        firstName = fname;
        lastName = lName;
    }

    //Your 4 parameters constructor with the same name
    public Person(String fName, String mName, String, lName, int newAge){
        firstName = fName;
        middleName = mName;
        lastName = lName;
        age = newAge;
    }
}

public class BirthdayBoy extends Person{
    String birthMonth;
    int birthYear;

    public BirthdayBoy(String fName, String lName, String bMonth, int bYear){
        super(fName, lName);
        birthMonth = bMonth;
        birthYear = bYear;
    }

}