package com.yydcdut; public class Employee implements Company { private String name; private String position; private int salary; public Employee(String name, String position, int salary) { super(); this.name = name; this.position = position; this.salary = salary; } @Override public String getInfo() { String info = ""; info = "名称:" + name + "\t职位" + position + "\t薪水" + salary; return info; } }
package com.yydcdut; public class Main { public static void main(String[] args) { //BOSS ConcreteCompany root = new ConcreteCompany("zhangsan","ceo",10000); //Manager ConcreteCompany developDep = new ConcreteCompany("sisi", "yanha", 8000); ConcreteCompany salesDep = new ConcreteCompany("wangwu", "xiaoshou", 8000); ConcreteCompany financeDep = new ConcreteCompany("maliu", "caiwu", 8000); //employee Employee e1 = new Employee("A", "yanfa", 3000); Employee e2 = new Employee("B", "yanfa", 4000); Employee e3 = new Employee("C", "yanfa", 5000); Employee e4 = new Employee("D", "yanfa", 6000); Employee e5 = new Employee("E", "xiaoshou", 3000); Employee e6 = new Employee("F", "xiaoshou", 4000); Employee e7 = new Employee("G", "xiaoshou", 5000); Employee e8 = new Employee("H", "xiaoshou", 3000); Employee e9 = new Employee("I", "caiwu", 3000); //tree root.add(developDep); root.add(salesDep); root.add(financeDep); developDep.add(e1); developDep.add(e2); developDep.add(e3); developDep.add(e4); salesDep.add(e5); salesDep.add(e6); salesDep.add(e7); salesDep.add(e8); financeDep.add(e9); System.out.println(root.getInfo()); display(root); } public static void display(ConcreteCompany root) { for(Company c : root.getChild()) { if(c instanceof Employee) { System.out.println(c.getInfo()); } else { System.out.println("\n"+c.getInfo()); display((ConcreteCompany) c); } } } }
名称:zhangsan 职位ceo 薪水10000
名称:sisi 职位yanha 薪水8000
名称:A 职位yanfa 薪水3000
名称:B 职位yanfa 薪水4000
名称:C 职位yanfa 薪水5000
名称:D 职位yanfa 薪水6000
名称:wangwu 职位xiaoshou 薪水8000
名称:E 职位xiaoshou 薪水3000
名称:F 职位xiaoshou 薪水4000
名称:G 职位xiaoshou 薪水5000
名称:H 职位xiaoshou 薪水3000
名称:maliu 职位caiwu 薪水8000
名称:I 职位caiwu 薪水3000