public abstract class AbstractSteamedBun {
public final void steameBun() {
kneadDough();
prepareStuffing();
wrapBun();
steam();
}
protected abstract void wrapBun();
protected abstract void prepareStuffing();
private void kneadDough() {
System.out.println("和面...");
}
private void steam() {
System.out.println("开始蒸包子");
}
}
public class SteamedBeefBun extends AbstractSteamedBun {
@Override
protected void wrapBun() {
System.out.println("开始包牛肉包子");
}
@Override
protected void prepareStuffing() {
System.out.println("开始准备牛肉包子馅");
}
}
public static void main(String[] args) {
AbstractSteamedBun bun = new SteamedBeefBun();
bun.steameBun();
}