编写一个Employee类,声明为抽象类,
包含如下三个属性:name,id,salary。
提供必要的构造器和抽象方法:work()。
对于Manager类来说,他既是员工,还具有奖金(bonus)的属性。
请使用继承的思想,设计CommonEmployee类和Manager类,要求类
中提供必要的方法进行属性访问
代码实现:
/*
编写一个Employee类,声明为抽象类,
包含如下三个属性:name,id,salary。
提供必要的构造器和抽象方法:work()。
*/
abstract class Employee {
private String name;
private int id;
private double salary;
public Employee(){
}
public Employee(String name, int id, double salary) {
this.name = name;
this.id = id;
this.salary = salary;
}
public abstract void work();
}
/*
对于Manager类来说,他既是员工,还具有奖金(bonus)的属性。
*/
public class Manager extends Employee{
private double bouns;//奖金
public Manager(double bouns) {
this.bouns = bouns;
}
public Manager(String name, int id, double salary, double bouns) {
super(name, id, salary);
this.bouns = bouns;
}
@Override//因为父类Employee存在抽象方法work()需要重写,否则Manager类报错//因为重写了父类的抽象方法work()所以Manager就不是抽象类了
public void work() {
System.out.println("管理员工");
}
}
public class CommonEmployee extends Employee{
public CommonEmployee() {
}
public CommonEmployee(String name, int id, double salary) {
super(name, id, salary);
}
@Override//因为重写了父类的抽象方法work()所以CommonEmployee就不是抽象类了
public void work() {
System.out.println("员工在一线车间生产产品!");
}
}
测试类:
/*
请使用继承的思想,设计CommonEmployee类和Manager类,要求类中提供必要的方法进行属性访问
*/
public class EmployeeTest {
public static void main(String[] args) {
CommonEmployee commonEmployee=new CommonEmployee("jack",11,4152);
commonEmployee.work();
Manager manager =new Manager("Jack",1112,88888,66666);
//多态
Employee manager1 =new Manager("Tom",12,888,666);
manager1.work();
manager.work();
}
}
欢迎点赞评论,