描述
一个抽象类中,有一个主方法,再定义1…n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用
 UML

 示例
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 
 | interface ICalculator{
 public int calculate(String exp);
 }
 
 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 a, int b);
 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;
 }
 }
 
 class Plus extends AbstractCalculator {
 @Override
 public int calculate(int a, int b){
 return a+b;
 }
 }
 class Minus extends AbstractCalculator {
 @Override
 public int calculate(int a, int b){
 return a-b;
 }
 }
 class Multiply extends AbstractCalculator {
 @Override
 public int calculate(int a, int b){
 return a*b;
 }
 }
 
 public class Test {
 public static void printMsg(String msg){
 System.out.println(msg);
 }
 public static void main(String[] args){
 String exp= "2+8";
 AbstractCalculator cal = new Plus();
 int result = cal.calculate(exp, "\\+");
 Test.printMsg(Integer.toString(result));
 }
 }
 
 |