员工与多态
/继承代码清单7.1.Employee。java
Empyee类代码,代表雇员
*/
pubic class Emoloyee{
public String name; //姓名
public String address //邮寄地址
public int ssN //社保号
public int number //员工号
public float salary; //年薪
//邮寄支票
public void mailCheck() {
System.our.println("将员工"+name+"的支票寄到"+address);
}
//计算周薪
public float computrpay() {
return (flaot) salary/52.0; // 年薪制员工,一年友395/7= 52个周,
}
}
___________________________________________________________________________________
public float cmputepay() {
if(isSalary) {
//对于拿年薪的员工,执行薪酬计算
}
else {
//对拿时薪的员工,执行薪酬计算
}
}
---------------------------------------------------------------------------------------\
public float computePay(){
switch(employeeRype) {
case 0:
//对于拿固定工资的员工进行薪酬计算
break:
case 1:
//对计算时薪的员工进行薪酬计算
break;
case 2:
//对于合同工,执行薪酬计算
break;
//如果友必要继续添加case语句
}
}
-----------------------------------------------------------------------------------------\
/代码清单 7.2
Salary类,代表拿固定年薪的员工
*/
public class Salary {
public String name;
public String address;
public int SSN;
public int number;
public float salary;
public void mailCheck(); {
System.out.println("邮寄支票给员工"+name+"的地址为"+address);
}
public float computepay() {
return (faoat) salary/52.0;
}
}
------------------------------------------------------------------------------------------\
/代码清单 7.3 Hourly.java
Hourly 类代表按小时附赠的员工类型
*/
public class Hourly{
public String name;
public String address;
public int SSN;
public int number;
public float hourlyRate;
public float houraWorked;
public voud mailcheck;
System.out.println("支票邮寄给员工"+name+"的地址为"+address)
}
public float computePay() {
return (float) hoursWorKed * hourlyRaet;
}
}
-----------------------------------------------------------------------------------------\
public class Salary extends Emoloyee
-----------------------------------------------------------------------------------------\
public class Hourly extends Employee
-----------------------------------------------------------------------------------------\
/*代码清单7.4 Employee.java
重新设计的Employee类,作为父类,共性的特征行为放在Employee类中;
*/
public class Employee{
public String name;
public String address;
public int SSN;
public int number;
public void mailCheck(){
System.out.println("邮寄支票给员工"+name+"的地址为"+address);
}
}
----------------------------------------------------------------------------------------\
/*代码清单7.5 Salary.java
重新设计的Salary类,作为Employee类的子类。
*/
public class Salary extends Employee{
public float salary; //年薪
public float computePay(){
System.out.println("计算拿固定工资的员工"+name+"的工资");
return salary/52;
}
}
/代码清单
public class Hourly extends Emloyee{
public float hourlyRate; //每小时报酬
public float hoursWrked: //每小时的工作时间
public float computepay(){
System.out.println("计算按薪酬支付员工"+name+"的薪水");
float pay = 0.0F;
if(hoursWorked <= 40){
pay = hourlyRate * hoursWorked;
}
else { //需要计算加班
pay = (hourlyRate * 40) + (hourlyRate (hourWorked - 40) * 1.5F)
}
return pay;
}
}
-------------------------------------------------------------------------------------\
public class TnherItDemo{
public static void wain (String [] args){
System.out.println("实例化一个对象")
Employee e = new Employee();
e.name = "张三";
e.address = "111 java Street";
e.SSN= 999001111;
e.number = 1;
System.out.println("实例化一个Salary对象");
Salary s = new Salary();
s.name = "李四";
s.address = "222 oak Drive";
s.SSN = 111009999;
s.salary = 100000.00F;
System.out.println("实例化一个hourly对象");
Hourly h = new Hourly();
h.name = "王二";
h.address = "333 Espresso Lane";
h.SSN = 111990000;
h.number = 3 ;
h.hourlyReate = 10.00F;
h.oursWorked = 50;
System.our.println("发工资");
//e.compurepay //不能通过编译
System.out.println(s.number+""+s.computepay());
System.out.println(h.number+""+h.computepay());
System.our.println("邮寄支票');
e.mailCheck();
s.mailCHECK();
h.mailCheck();
}
}
public class partTimeSalary extends Salary{
public int housWored;
public int getHoursWorked();
System.out.println("Getting hours for + this.name + "earning "+salary);
return housWorked;
}
}
public class Employee(
//类定义
)
publican class Employee extends Object{
//类定义
}
publicanc calass Salary extend Employee{
//
}
浙公网安备 33010602011771号