学习笔记,初学者对继承、接口的习题练习: 模拟给所有员工发工资定义员工Employee类,经理Manager类继承Employee类,职员Clerk类继承Employee类。

继承、接口:
习题要求: 模拟给所有员工发工资。
* 定义员工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);
	}

继承,接口练习习题。欢迎借鉴及提出指正━(`∀´)ノ亻!

猜你喜欢

转载自blog.csdn.net/x4pp5/article/details/107436794