子类复子类,子类何其多
假如我们需要为游戏中开发一种坦克,除了各种不同型号
的坦克外,我们还希望在不同场合中为其增加以下一种或
多种功能:比如红外线夜视功能,比如水陆两栖功能,比
如卫星定位功能等等。
// 抽象坦克
public abstract class Tank {
public abstract Shot();
public abstract Run();
}
//各种型号
public class T50: Tank {……}
public class T75: Tank {……}
public class T90: Tank {……}
//各种不同功能的组合
public class T50A: T50, IA {…}
public class T50B: T50, IB {…}
public class T50C: T50, IC {…}
public class T50AB: T50, IA, IB {…}
public class T50BC: T50, IB, IC {…}
public class T50ABC: T50, IA, IB, IC{...}