package com.zuhe;
public abstract class Node {
String name;
String position;
public Node(String name,String position) {
this.name=name;
this.position=position;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public void show(){
System.out.println(name +" "+position);
}
public static void main(String[] args) {
Branch ceo=new Branch("刘总","ceo");
Branch bm1=new Branch("王副总","开发部门经理");
Branch bm2=new Branch("赵副总","销售部门经理");
Branch ks1=new Branch("王经理","开发科室经理");
Branch ks2=new Branch("赵经理","销售科室经理");
Leaf leaf1=new Leaf("张三","开发员工");
Leaf leaf2=new Leaf("李四","销售员工");
ks1.addunder(leaf1);
ks2.addunder(leaf2);
bm1.addunder(ks1);
bm2.addunder(ks2);
ceo.addunder(bm1);
ceo.addunder(bm2);
// ceo.getUnders();
bm1.getUnders();
}
}
package com.zuhe;
import java.util.ArrayList;
import java.util.List;
public class Branch extends Node {
public Branch(String name, String position) {
super(name, position);
}
List<Node> unders=new ArrayList<Node>();
public void getUnders() {
for (Node under : unders) {
under.show();
}
}
public void addunder(Node under) {
this.unders.add(under);
}
public void removeunder(Node under) {
this.unders.remove(under);
}
}
package com.zuhe;
public class Leaf extends Node {
public Leaf(String name, String position) {
super(name, position);
}
}