[英]Abstract Methods and Constructors
首先,这不是作业问题。 这是过去试卷的修订问题。
好的,所以问题是:
实现一个称为Employee的抽象基类,该基类用于保存和访问有关员工的基本信息,例如姓名,地址等。该类还应定义一个名为Income()的抽象方法,该方法返回每种类型的员工的每周薪水。 该类应包括合适的构造函数和访问器方法,以检索有关员工的信息。
到目前为止,我的代码是:
abstract public class Employee {
public String Full_Name;
public int IDNum;
public String FullAddress;
public int hours_worked;
public int hour_pay;
Employee(String name, int ID, String Address){
Full_Name = name;
IDNum = ID;
FullAddress = Address;
}
abstract public int earnings(){
return int week_Sal = hours_worked*hour_pay;
}
}
所以我的问题是,如何将每个员工的不同参数传递到收入方法中,然后才能计算他们的收入?
在Java中,抽象方法声明不包含方法主体。 您只需要声明该方法应该存在即可。 该类的非抽象子类必须提供该方法的版本。
这是问题正在寻找的示例:
abstract public class Employee {
public String Full_Name;
public int IDNum;
public String FullAddress;
Employee(String name, int ID, String Address){
Full_Name = name;
IDNum = ID;
FullAddress = Address;
}
abstract public int earnings();
}
public class HourlyEmployee extends Employee {
private int hours_worked;
private int hour_pay;
HourlyEmployee(String name, int ID, String Address, int hour_pay) {
super(name, ID, Address);
this.hour_pay = hour_pay;
}
public void setHoursWorked(int hours_worked) {
this.hours_worked = hours_worked;
}
@Override
public int earnings() {
return hours_worked * hour_pay;
}
}
public class CEO extends Employee {
private long year_pay;
CEO(String name, int ID, String Address, long year_pay) {
super(name, ID, Address);
this.year_pay = year_pay;
}
@Override
public int earnings() {
// Convert yearly pay to weekly pay
return (int) (year_pay / 52);
}
}
基类只是声明有一个返回每周收入的方法。 子类提供了自己的方法版本,每个子类可以以完全不同的方式实现该方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.