继承、接口:
习题要求: 模拟给所有员工发工资。
* 定义员工Employee类,经理Manager类继承Employee类,职员Clerk类继承Employee类。
* 定义Money接口,定义公司Company类实现Money接口。
* 下表为输出发放薪资结果,据题要求设计代码。
=== 期初薪资===
小明的薪资:8000 | 银行卡余额:0
小亮的薪资:6000 | 银行卡余额:0
=== 第一个月===
小明的薪资:8000 | 银行卡余额:8500
小亮的薪资:6000 | 银行卡余额:6000
=== 第二个月===
小明的薪资:8000 | 银行卡余额:17000
小亮的薪资:6000 | 银行卡余额:12000
=== 第三个月===
小明的薪资:8000 | 银行卡余额:25500
小亮的薪资:6000 | 银行卡余额:18000
思路:
1. 定义员工Employee类。包含属性:姓名,薪资,银行卡余额(保存工资)。
2. 定义经理Manager类继承Employee类,包含属性:奖金。
3. 定义职员Clerk类继承Employee类。
4. 定义Money接口,提供抽象方法salary。
5. 定义公司Company类,实现Money接口。
6. 定义测试类,创建类对象,调用公司salary方法,给经理和职员发工资。
定义员工Employee类
构造方法根据需求可创建多个
public class Employee {
String name;
double pay;
double cardpay;
public Employee() {
super();
}
public Employee(String name) {
this.name = name;
}
public Employee(String name, double pay, double cardpay) {
this.name = name;
this.pay = pay;
this.cardpay = cardpay;
}
}
定义经理Manager类继承Employee类
根据题目需求,经理Manager类的薪资属性pay和奖金addpay为固定值,定义为静态 最终属性。
class Manager extends Employee {
static final double pay=8000;
static final double addpay=500;
static double cardpay1=0;
public Manager() {
super();
}
public Manager(String name) {
this.name = name;
}
}
定义职员Clerk类继承Employee类
class Clerk extends Employee {
static final double pay=6000;
static double cardpay2=0;
public Clerk() {
super();
}
public Clerk(String name) {
this.name = name;
}
}
定义Money接口,提供抽象方法salary
public interface MoneyInterface {
public void salary();
}
定义公司Company类,实现Money接口
给属性赋值,定义salary薪资发放方法。
class Company implements MoneyInterface {
@Override
public void salary() {
Manager role1 = new Manager("刘德华");
role3.cardpay1=role1.pay+role1.addpay+role1.cardpay1;
System.out.println(role1.name+"的薪资是:"+role1.pay+"\t卡余额是"+role1.cardpay1);
Clerk role2 = new Clerk("郭富城");
role4.cardpay2=role2.pay+role2.cardpay2;
System.out.println(role2.name+"的薪资是:"+role2.pay+"\t卡余额是"+role2.cardpay2);
}
}
定义测试类,创建类对象,调用公司salary方法,给经理和职员发工资
可以加入一个循环,输入月份输出对应月份薪资表
public static void main(String[] args) {
Company company =new Company();
Scanner sc =new Scanner(System.in);
do {
System.out.println("请输入一个月份:");
int x = sc.nextInt();
int n = 1;
while (n <= x) {
company.salary();
System.out.println("=======第"+n+"个月=========\n");
n++;
}
} while (true);
}
继承,接口练习习题。欢迎借鉴及提出指正━(`∀´)ノ亻!