代码讲解
/**
* 标题:Lambda表达式学习与应用 【匿名内部类方法重写与Lambda表达式方法重写对比】
* 作者:Nstar
* 时间:2020年3月20日
*/
public class Test20 {
interface Myintface_spek{ //定义接口
void spek(); //自动为抽象方法
}
public static void main(String[] args) { //入口方法
Myintface_spek my = new Myintface_spek() { //创建匿名类
@Override //Java注解,不写也可以,就是检测是否方法被重写
public void spek() { //对抽象方法进行重写,也是第一次重写
System.out.println("匿名类重写接口抽象方法1!!!");
}
};
my.spek(); //调用方法
//通过Lambda表达式对接口的抽象方法进行重写,和匿名内部类中重写,形成对比,表现出Lambda表达式的优势与简洁
//Lambda表达式格式:(参数) -> 表达式
//或 (参数) ->{ 表达方式; }
//
Myintface_spek my1=()->System.out.println("Lambda表达式测试2!!!"); //第1次通过Lambda表达式重写接口抽象方法
//()->System.out.println 将运行过的数据传入最左边下括号
my1.spek(); //调用方法
Myintface_spek my2=()->System.out.println("Lambda表达式测试3!!!"); //第2次通过Lambda表达式重写接口抽象方法
//()->System.out.println 将运行过的数据传入最左边下括号
my2.spek(); //调用方法
Myintface_spek my3=()->System.out.println("Lambda表达式测试4!!!"); //第3次通过Lambda表达式重写接口抽象方法
//()->System.out.println 将运行过的数据传入最左边下括号
my3.spek(); //调用方法
}
}
运行结果