首先有一个接口类IGame
/**
* 玩游戏
*
* @author wyk
* @since 2021/8/5 19:33
*/
public interface IGame {
/**
* 玩游戏
*/
void playGame();
}
然后有一个游戏基类为Game类,Game类里定义了游戏的流程框架和相同的逻辑方法。
/**
* 游戏
*/
public class Game implements IGame {
// region 主体流程
/**
* 玩游戏流程
*/
@Override
public void playGame() {
// 初始化游戏
initialize();
// 开始游戏
startPlay();
// 玩游戏
playing();
// 结束游戏
endPlay();
}
// endregion
// region 子类需要重写的方法
/**
* 初始化游戏
*/
protected void initialize() {
// 执行
System.out.println("游戏加载");
}
/**
* 开始游戏
*/
protected void startPlay() {
// 执行
System.out.println("点击开始");
}
/**
* 玩游戏
*/
protected void playing() {
}
/**
* 游戏结束
*/
protected void endPlay() {
// 执行
System.out.println("游戏结束");
}
// endregion
}
存在一个射击类游戏子类,继承游戏基类并重写了玩游戏的具体流程
/**
* 射击游戏
*/
public class Shooting extends Game{
// region 重写父类方法
/**
* 游戏模式为射击
*/
@Override
public void playing(){
// 执行
System.out.println("参与射击游戏");
}
// endregion
}