/* * 雇员示例: * 需求:公司中程序员有姓名、工号、薪水、工作内容 * 项目经理除了有姓名、工号、薪水、还有奖金、工作内容 * 对给出需求进行数据建模 * * 分析: * 在这个问题领域中,先找出涉及的对象 * 通过名词提炼法 * 程序员: * 属性:姓名、工号、薪水 * 行为:工作 * 经理: * 属性:姓名、工号、薪水、奖金 * 行为:工作 * * 程序员和经理不存在着直接继承关系 * 程序员和经理具有共性内容 * 可以将程序员和经理进行抽取,建立体系 */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 Programer extends Employee{ Programer(String name, String id, double pay){ super(name, id, pay); //调用父类的构造方法 } 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; //最后一个参数自已初始化 } public void work(){ System.out.println("manage..."); }}public class AbstractDemo1 { public static void main(String[] args) { Manager manager = new Manager("eboy", "1038", 100.38, 200); manager.work(); Programer programer = new Programer("frr", "1039", 200.38); programer.work(); }}