雇员类(Employee-抽象类):包含抽象方法work() 和抽象方法 show()
work()方法表示 工作内容
show()方法表示 员工属性的介绍
程序员类和项目经理类都属于雇员
程序员类:属性(姓名、工号、工资、奖金),行为(工作:软件开发)
项目经理类:属性(姓名、工号、工资、奖金),行为(工作:控制进度)
要求:子类在实现时,用System.out.println()在控制台输出
例如: 程序员 work() 输出:"软件开发"
show() 输出:姓名为xxx 工号为xxx .....
//测试类
public class EmployeeTest {
public static void main(String[] args) {
Employee employee = new Programmer();
Programmer programmer = (Programmer)employee;
programmer.work();
programmer.show("tom", "001", 15000.99, 5000);
employee = new ProjectManager();
ProjectManager manager = (ProjectManager)employee;
manager.work();
manager.show("jack", "002", 18888.99, 6000);
}
}
//父类
public abstract class Employee {
public String name;
public String id;
public double salary;
public double bonus;
public Employee() {
super();
// TODO Auto-generated constructor stub
}
public Employee(String name, String id, double salary, double bonus) {
super();
this.name = name;
this.id = id;
this.salary = salary;
this.bonus = bonus;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
public abstract void show();
public abstract void work();
public void show(String name, String id, double salary, double bonus) {
// TODO Auto-generated method stub
System.out.println("姓名为:"+name+" 工号为:"+id+" 工资为:"+salary+" 奖金为:"+bonus);
}
}
//程序员类
public class Programmer extends Employee {
public Programmer() {
super();
// TODO Auto-generated constructor stub
}
public Programmer(String name, String id, double salary, double bonus) {
super(name, id, salary, bonus);
// TODO Auto-generated constructor stub
}
@Override
public void show() {
// TODO Auto-generated method stub
super.show(getName(), getId(), getSalary(), getBonus());
}
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println("软件开发");
}
}
//项目经理
public class ProjectManager extends Employee {
public ProjectManager() {
super();
// TODO Auto-generated constructor stub
}
public ProjectManager(String name, String id, double salary, double bonus) {
super(name, id, salary, bonus);
// TODO Auto-generated constructor stub
}
@Override
public void show() {
// TODO Auto-generated method stub
super.show(getName(), getId(), getSalary(), getBonus());
}
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println("控制进度");
}
}
本文详细介绍了使用面向对象编程中的抽象类和继承概念来设计雇员类及其子类(程序员和项目经理)。通过具体示例,展示了如何在Java中实现抽象方法,并在子类中进行具体的方法实现。
问题&spm=1001.2101.3001.5002&articleId=107648255&d=1&t=3&u=aa86c36e50a842fa8323a62681f216fc)
3500

被折叠的 条评论
为什么被折叠?



