定義
將通用代碼或統一的結構封裝在抽象類中,可變的部分放在子類中去實現.
示例
遊戲有足球和板球,玩的步驟是統一的,都是先初始化,再開始,再結束.可將初始化,開始,結束的步驟封裝在抽象類Game中.再由子類實現細節.
1.抽象類
public abstract class Game {
abstract void init();
abstract void start();
abstract void end();
//規定好了遊戲的步驟,使用final防止惡意串改
public final void play(){
init();
start();
end();
}
}
2.子類實現
public class Football extends Game{
@Override
void init() {
System.out.println("足球遊戲初始化!!!");
}
@Override
void start() {
System.out.println("足球遊戲開始!!!");
}
@Override
void end() {
System.out.println("足球遊戲結束!!!");
}
}
public class Cricket extends Game{
@Override
void init() {
System.out.println("板球遊戲初始化!!!");
}
@Override
void start() {
System.out.println("板球遊戲開始!!!");
}
@Override
void end() {
System.out.println("板球遊戲結束!!!");
}
}
3.運行
public static void main(String[] args) {
Game football = new Football();
Game cricket = new Cricket();
football.play();
cricket.play();
}
結果:
足球遊戲初始化!!!
足球遊戲開始!!!
足球遊戲結束!!!
板球遊戲初始化!!!
板球遊戲開始!!!
板球遊戲結束!!!