问题
一个同事发来的题目:学校有三种人员,第一种为教师,属性包括名字、教工号、电话、地址;第二种为学生,属性包括名字、学号、电话、地址、平均成绩;第三种为辅工,属性包括名字、辅工号、电话、地址、工种。使用你学到的面向对象设计的方法,实现这三种人员的类表示,并实现三种人员的添加、修改、删除,可在内存进行增删改的操作,不需要永久保存。
注,可使用List保存人员,如没有使用OO设计方法,本期作业不通过,仅使用类不是OO设计。
答案v1
大致扫了一眼题目,是一个简单的OO设计问题。于是第一版答案很快出来了。
抽象父类Staff
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 30 31 |
public abstract class Staff { private String id; private String name; private String mobile; private String address; protected Staff(String id, String name, String mobile, String address) { this.id = id; this.name = name; this.mobile = mobile; this.address = address; } //省略setter和getter public abstract <T extends Staff> Set<T> getSet(); public void add() { getSet().add(this); } public void delete() { getSet().remove(this); } public void update(Staff o) { getSet().remove(o); getSet().add(this); } } |