jdk1.8的新特性之一是接口可以写默认实现方法。正好可以用在模板方法模式之上,之前一直使用抽象类来实现的。(该特性不仅限使用模板方法模式)。
1、car的类
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函数TestMain
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();
}
}
上面创建了两个类型的车,一个小车、一个大卡车。
3、运行结果:
本文介绍Java 8中接口新增的默认方法特性,并通过一个实例展示如何结合模板方法模式来简化代码结构。通过定义一个Car接口及其实现类,演示不同类型的汽车制造过程。
189

被折叠的 条评论
为什么被折叠?



