package lambda;
public class TestLambda {
//2.静态内部类
static class Like2 implements ILike{
@Override
public void lambda() {
System.out.println("i like 2");
}
}
public static void main(String[] args) {
ILike like = new Like1();//接口是父类,父类引用指向子类对象
like.lambda();
like = new Like2();//like和上方的名字一样
like.lambda();
class Like3 implements ILike{//3.局部内部类
@Override
public void lambda() {
System.out.println("i like 3");
}
}
like = new Like3();
like.lambda();
//4.匿名内部类
like = new ILike() {
@Override
public void lambda() {
System.out.println("i like 4");
}
};
like.lambda();
//5.用lambda表达式去简化
like = ()->{
System.out.println("i like 5");
};
like.lambda();
}
}
//定义一个函数式接口//一个接口里只有一个方法
interface ILike{
void lambda();
}
//1.外部类
class Like1 implements ILike{
@Override
public void lambda() {
System.out.println("i like 1");
}
}
package lambda;
public class TestLambda2 {
public static void main(String[] args) {
ILove iLove = null;
iLove= (int a) -> {//通过接口创建对象
System.out.println("i love\t"+a);
};
iLove.love(3);
}
}
interface ILove{
void love(int a);
}