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 }