/*
雇员示例:
需求:公司中程序员有姓名、工号、薪水、工作内容.
项目经理除了有姓名、工号、薪水、工作内容,还有奖金.
对给出的需求进行数据建模.
分析:
在这个问题领域中,先找出涉及的对象,
通过名词提炼法:
程序员:
属性:姓名、工号、薪水
行为:工作
经理:
属性:姓名、工号、薪水、奖金
行为:工作
程序员和经理不存在着直接继承关系,但是程序员和经理却有共性内容.可以进行抽取.因为他们都是
公司的雇员.可以将程序员和经理进行抽取,建立体系.
*/
//描述雇员.
abstract class Employee {
private String name;
private String id;
private double pay;
Employee(String name, String id, double pay) {
this.name = name;
this.id = id;
this.pay = pay;
}
public abstract void work();
}
// 描述程序员.
class Programmer extends Employee {
Programmer(String name, String id, double pay) {
super(name, id, pay);
System.out.println("姓名:"+name+"\n"+"工号:"+id+"\n"+"工资:"+pay);
}
@Override
public void work() {
System.out.println("工作内容:code");
}
}
//描述经理.
class Manager extends Employee {
private int bonus ;
Manager(String name, String id, double pay,int bonus) {
super(name, id, pay);
this.bonus = bonus ;
System.out.println("姓名:"+name+"\n"+"工号:"+id+"\n"+"工资:"+pay+"\n"+
"奖金:"+bonus);
}
@Override
public void work() {
System.out.println("工作内容:manager");
}
}
public class AbstractTest {
public static void main(String[] args) {
// Programmer p = new Programmer("张三", "101", 5000) ;
// p.work();
Manager m = new Manager("李四", "080", 9000, 4000) ;
m.work();
}
}
继承和抽象类练习
最新推荐文章于 2021-03-28 07:47:26 发布