先看代碼:ide
package com.ceshi13; public abstract class AbstractCalculator { /*主方法,實現對本類其它方法的調用*/ public final int calculate(String exp,String opt){ int array[] = split(exp,opt); return calculate(array[0],array[1]); } /*被子類重寫的方法*/ abstract public int calculate(int num1,int num2); public int[] split(String exp,String opt){ String array[] = exp.split(opt); int arrayInt[] = new int[2]; arrayInt[0] = Integer.parseInt(array[0]); arrayInt[1] = Integer.parseInt(array[1]); return arrayInt; } }
package com.ceshi13; public class Plus extends AbstractCalculator { @Override public int calculate(int num1, int num2) { return num1 + num2; } }
package com.ceshi13; public class StrategyTest { public static void main(String[] args) { String exp = "8+8"; AbstractCalculator cal = new Plus(); int result = cal.calculate(exp, "\\+"); System.out.println(result); } }
運算結果:spa
上面抽象類的代碼中有calculate方法,是能夠經過不一樣的子類繼承而且重寫的,這就至關於模版code
定義了模版,至於具體是怎麼子的經過子類實現blog