某公司的系统中需要记录两类员工:
员工类:
属性:工号、姓名、年龄
行为:发布通知
经理类:
属性:工号、姓名、年龄、年终奖额
行为:发布通知
任何员工发布 “通知” 都统一使用以下格式:
通知:
xxxxxxxxx
xxxxxxxxx
嗨客科技有限公司
通知类代码:
public abstract class Notice {
// 属性
private String id;
private String name;
private int age;
// 无参构造
public Notice() {
}
// 全参构造
public Notice(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
// 展示信息
public void showInfo(){
System.out.println("人员信息:");
System.out.println("编号:" + id + " 姓名:" + name + " 年龄:" + age);
}
// 发布通告
public void notice(){
System.out.println("通知:");
send();
System.out.println(" 嗨客科技有限公司\n");
}
public abstract void send();
}
员工类代码:
public class Staff extends Notice {
// 无参构造
public Staff() {
}
// 全参构造
public Staff(String id, String name, int age) {
super(id, name, age);
}
// 发通知方法
@Override
public void send() {
System.out.println(" 员工通知");
}
}
经理类代码:
public class Manager extends Notice{
// 无参构造
public Manager() {
}
// 全参构造
public Manager(String id, String name, int age) {
super(id, name, age);
}
// 发通知方法
@Override
public void send() {
System.out.println(" 经理通知");
}
}
测试类代码:
public class Test {
public static void main(String[] args) {
System.out.println("嗨客网(www.haicoder.net)\n");
// 员工
Staff sf = new Staff("01","张三",30);
sf.showInfo();
sf.notice();
// 经理
Manager m = new Manager("02","李经理",35);
m.showInfo();
m.notice();
}
}
运行结果如下图:
以上案例运用 Java 抽象类,使用模板模式的思想设计类。