1.面向对象编程练习
package com.logic.homework.homework05;
//5.设计父类一员工类.子类:工人类(Worker),农民类(Peasant),教师类(Teacher),科学家类(Scientist),服务生类(Waiter)。
//(1)其中工人,农民,服务生只有基本工资
//(2)教师除基本工资外,还有课酬(元/天)
//(3)科学家除基本工资外,还有年终奖
//(4)编写一个测试类,将各种类型的员工的全年工资打印出来
public class Homework05 {
public static void main(String[] args) {
Worker worker = new Worker(200, 20);
worker.setSalMonth(15);
worker.printYearSal();
Waiter waiter = new Waiter(100, 20);
waiter.printYearSal();
Peasant peasant = new Peasant(300, 20);
peasant.printYearSal();
Teacher teacher = new Teacher(200, 20);
teacher.setClassSal(50);
teacher.setTeachDays(400);
teacher.printYearSal();
Scientist scientist = new Scientist(400, 20);
scientist.setYearBonus(200000);
scientist.printYearSal();
}
}
package com.logic.homework.homework05;
public class Employee {
private double daySal;
private int monthWorkDays;
private int salMonth = 12;
public Employee(double daySal, int monthWorkDays) {
this.daySal = daySal;
this.monthWorkDays = monthWorkDays;
}
public double getDaySal() {
return daySal;
}
public void setDaySal(double daySal) {
this.daySal = daySal;
}
public int getMonthWorkDays() {
return monthWorkDays;
}
public void setMonthWorkDays(int monthWorkDays) {
this.monthWorkDays = monthWorkDays;
}
public int getSalMonth() {
return salMonth;
}
public void setSalMonth(int salMonth) {
this.salMonth = salMonth;
}
public void printYearSal() {
System.out.println("的年薪为: " + daySal * monthWorkDays * salMonth);
}
}
package com.logic.homework.homework05;
public class Worker extends Employee {
public Worker(double daySal, int monthWorkDays) {
super(daySal, monthWorkDays);
}
@Override
public void printYearSal() {
System.out.print("该工人");
super.printYearSal();
}
}
package com.logic.homework.homework05;
public class Scientist extends Employee {
private double yearBonus;
public Scientist(double daySal, int monthWorkDays) {
super(daySal, monthWorkDays);
}
public double getYearBonus() {
return yearBonus;
}
public void setYearBonus(double yearBonus) {
this.yearBonus = yearBonus;
}
@Override
public void printYearSal() {
System.out.println("该科学家的年资为: " + (getDaySal() * getMonthWorkDays()
* 12 + getYearBonus()));
}
}
package com.logic.homework.homework05;
public class Teacher extends Employee {
private double classSal;
private int teachDays;
public Teacher(double daySal, int monthWorkDays) {
super(daySal, monthWorkDays);
}
public double getClassSal() {
return classSal;
}
public void setClassSal(double classSal) {
this.classSal = classSal;
}
public int getTeachDays() {
return teachDays;
}
public void setTeachDays(int teachDays) {
this.teachDays = teachDays;
}
@Override
public void printYearSal() {
System.out.println("该教师的年薪为: " + (getDaySal() * getMonthWorkDays() * 12
+ getClassSal() * getTeachDays()));
}
}
package com.logic.homework.homework05;
public class Waiter extends Employee {
public Waiter(double daySal, int monthWorkDays) {
super(daySal, monthWorkDays);
}
@Override
public void printYearSal() {
System.out.print("该服务员");
super.printYearSal();
}
}
package com.logic.homework.homework05;
public class Peasant extends Employee {
public Peasant(double daySal, int monthWorkDays) {
super(daySal, monthWorkDays);
}
@Override
public void printYearSal() {
System.out.print("该农民");
super.printYearSal();
}
}