了解构造函数和超类

时间:2018-02-13 00:04:38

标签: java class constructor super

我正在尝试理解我的教授给我的关于构造函数和继承的一段代码。

下面是一个'Employee'类,其中创建变量并创建一个构造来初始化所述变量。这部分我很顺利。

public abstract class Employee {

private int employeeID;
private String firstName;
private String lastName;
private ArrayList<Paycheck> listOfPaychecks;


Employee(int employeeID, String firstName, String lastName, ` 
         ArrayList<Paycheck> listOfPaychecks) {

    this.employeeID=employeeID;
    this.firstName=firstName;
    this.lastName=lastName;
    this.listOfPaychecks=listOfPaychecks;
}

下面,她提供了一个名为SalariedEmployee的不同类,它扩展了Employee类。她创建了一个变量annualSalary。

这是我感到困惑的地方,我看到她创造了两个构造函数。

public class SalariedEmployee extends Employee {

double annualSalary;


SalariedEmployee(SalariedEmployee s) {
    super(s.getEmployeeID(), s.getFirstName(), s.getLastName(), 
          s.getListOfPaychecks());
    this.annualSalary = s.annualSalary;
}

SalariedEmployee(int employeeID, String firstName, String lastName, 
                 ArrayList<Paycheck> listOfPaychecks,
                 double annualSalary) {
    super(employeeID, firstName, lastName, listOfPaychecks);
    this.annualSalary = annualSalary;
}

创建两个构造函数有什么意义?我看到第一个,她创建了一个变量's',它从Employee类的构造函数中获取变量。这只是将s变量设置为Employee类中的返回变量吗?

有人可以帮助我理解为什么我们创建两个构造函数?如果我的词汇不太好,我很抱歉。我还在学习。

0 个答案:

没有答案