jdk1.8的新特性中有一个是接口可以编写默认方法。这样写模板方法模式就很好的被利用到(不仅限模板方法使用)。
1、模板类
package com.zc.jdk8;
/**
* Created by Administrator on 2017/5/17.
*/
public interface Car {
/**
* Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法
*/
default void create(){
System.out.println("create wheel start !");
createWheel();
System.out.println("create wheel start !");
System.out.println("create engine start !");
createEngine();
System.out.println("create engine start !");
System.out.println("create frame start !");
createFrame();
System.out.println("create frame start !");
}
/**
* 造轮子
*/
public void createWheel();
/**
* 造发动机
*/
public void createEngine();
/**
* 造车架子
*/
public void createFrame();
}
2、测试main函数方法类
package com.zc.jdk8;
/**
* Created by Administrator on 2017/5/17.
*/
public class TestMain {
public static void main(String[] args) {
/**
* 创建个小轿车
*/
Car smallCar = new Car() {
@Override
public void createWheel() {
System.out.println("create Wheel small Car......");
}
@Override
public void createEngine() {
System.out.println("create Engine small Car......");
}
@Override
public void createFrame() {
System.out.println("create Frame small Car......");
}
};
smallCar.create();
/**
* 造个大轿车
*/
Car bigCar = new Car() {
@Override
public void createWheel() {
System.out.println("create Wheel big Car......");
}
@Override
public void createEngine() {
System.out.println("create Engine big Car......");
}
@Override
public void createFrame() {
System.out.println("create Frame big Car......");
}
};
bigCar.create();
}
}
上面创建了个两个车,一个小车,一个大车,构建实现方式具体暴露出来。