package com.guilin.moshi;
public abstract class Guochunjie {
// 模板方法(框架方法):按照必定順序執行的邏輯
public void celebrateSpringFestival() {
maipiao();
huijia();
guonian();
}
// 買票
protected final void maipiao() {
System.out.println("買票...");
}
// 回家(抽象方法)
protected abstract void huijia();
// 過年
protected final void guonian() {
System.out.println("過年...");
}
}
class ByFeiji extends Guochunjie {
@Override
protected void huijia() {
System.out.println("坐飛機回家...");
}
}
class ByHuoche extends Guochunjie {
@Override
protected void huijia() {
System.out.println("坐火車回家...");
}
}
// 測試
public class Test {
public static void main(String[] args) {
Guochunjie byFeiji = new ByFeiji();
Guochunjie byHuoche = new ByHuoche();
byFeiji.celebrateSpringFestival();
byHuoche.celebrateSpringFestival();
}