1 /** 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 //公司体系的建立 27 28 //雇员 29 class Employee 30 { 31 private String name; 32 private String id; 33 private double pay; 34 Employee(String name,String id,double pay) 35 { 36 this.name=name; 37 this.id=id; 38 this.pay=pay; 39 } 40 public abstract void work() 41 } 42 43 //描述程序员 44 class Programmer extends Employee 45 { 46 Programmer(String name,String id,double pay) 47 { 48 super(name,id,pay); 49 } 50 public void work() 51 { 52 System.out.println("code..."); 53 } 54 } 55 56 //描述经理 57 class Manger extends Employee 58 { 59 private int bonus; 60 Manger(String name,String id,double pay,int bonus) 61 { 62 super(name,id,pay); 63 this.bonus=bonus; 64 } 65 public void work() 66 { 67 System.out.println("manage"); 68 } 69 }