1 package face_09;
2 /*
3 * 雇员示例:
4 * 需求:公司中程序员有姓名,工号,薪水,工作内容。
5 * 项目经理除了有姓名,工号,薪水,还有奖金,工作内容。
6 * 对给出需求进行数据建模。
7 *
8 * 分析:
9 * 在这个问题领域中,先找出涉及的对象。
10 * 通过名词提炼法。
11 * 程序员:
12 * 属性:姓名,工号,薪水
13 * 行为:工作。
14 *
15 * 经理:
16 * 属性:姓名,工号,薪水,奖金。
17 * 行为:工作。
18 * 程序员和经理不存在着直接继承关系,
19 *
20 * 但是程序员和经理却具有共性内容。
21 * 可以进行抽取。因为他们都是公司的雇员
22 *
23 * 可以将程序员和经理进行抽取,建立体系。
24 */
25 //描述雇员。
26 abstract class Employee {
27 private String name;
28 private String id;
29 private double pay;
30 Employee(String name,String id,double pay){
31 this.name = name;
32 this.id = id;
33 this.pay = pay;
34 }
35 public abstract void work();
36 }
37 //程序员
38 class Programmer extends Employee {
39 Programmer(String name,String id,double pay){
40 super(name, id, pay);
41
42 }
43 public void work() {
44 System.out.println("code...");
45 }
46 }
47 //描述经理。
48 class Manager extends Employee {
49 private int bonus;
50 Manager(String name,String id,double pay,int bonus){
51 super(name, id, pay);
52 this.bonus = bonus;
53 }
54 public void work() {
55 System.out.println("manage");
56 }
57 }
58
59 public class AbstractTest {
60 public static void main(String[] args) {
61 System.out.println("Hello World!");
62 }
63 }