理解Functional Interface(函数式接口是学习lamda表达式的关键所在)
函数式接口:
任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口
对于函数式接口,可以通过lamda表达式来创建该接口的对象
package lamda;
/*
1.定义一个类 TestLambda
2.定义一个函数式接口 ILike
3.定义一个实现类
4.在TestLambda类中写main方法:接口new实现类对象调用方法
5.优化:可以把实现类写在 TestLambda 中作为静态内部类 局部内部类 匿名内部类 lambda
*/
public class TestLambda {
// 静态内部类 3
static class Like2 implements ILike{
@Override
public void lambda() {
System.out.println("I like lambda----2");
}
}
public static void main(String[] args) {
ILike like = new Like();//接口new实现类
like.lambda();
like =new Like2();
like.lambda();
// 局部内部类 4
class Like3 implements ILike{
@Override
public void lambda() {
System.out.println("I like lambda----3");
}
}
like=new Like3();
like.lambda();
// 匿名内部类 没有类的名称 必须借助接口或者父类 5
like=new ILike() {
@Override
public void lambda() {
System.out.println("I like lambda----4");
}
};
like.lambda();
// 用lambda简化 6
like= ()-> {
System.out.println("I like lambda----5");
};
like.lambda();
}
}
interface ILike{
void lambda();
}
//实现类 2
class Like implements ILike{
@Override
public void lambda() {
System.out.println("I like lambda");
}
}