定义一个模板,其中有确定的方法和不确定的方法,将不确定的方法延伸到子类中去实现。
//定义一个喝饮料的模板,里面有喝饮料的每一步的方法。
abstract class DrinkTemple{
public void hotWater(){//(第一步)确定的方法
System.out.println("把水烧开");
}
abstract public void putFood();//(第二步)不确定的方法
public void putWater(){//(第三步)确定的方法
System.out.println("把水倒进杯子");
}
abstract public void elseFood();//(第四步)不确定的方法
public void buZhuou(){
hotWater();
putFood();
putWater();
elseFood();
}
}
//喝咖啡类
class DrinkCoffee extends DrinkTemple{
@Override
public void putFood() {
System.out.println("加入咖啡");
}
@Override
public void elseFood() {
System.out.println("加入糖");
}
}
//喝茶类
class DrinkTea extends DrinkTemple{
@Override
public void putFood() {
System.out.println("放入茶叶");
}
@Override
public void elseFood() {
System.out.println("放入枸杞");
}
}
//测试类
public class MubanDemo {
public static void main(String[] args) {
DrinkCoffee df = new DrinkCoffee();
df.buZhuou();
}
}