介绍:
1、接口:
1】接口可以定义在另一个类的内部
2】接口中的方法都是抽象方法
3】接口中的常量都是静态常量
2、类
1】类可以定义在另一个类的内部
2】也可以定义为内部静态类,使用 static 关键字
3】还可以定义为局部内部类,定义在方法中
一、什么是Lambda表达式?
lambda表达式是为了简写代码的写法
二、什么是函数式接口?
1】只有一个抽象方法的接口就是函数式接口
//1.定义一个函数式接口。只有一个抽象方法的接口就是函数式接口
interface ILike{
void testLambda();
}
三、什么是匿名内部类?
匿名内部类的特点:
1】没有类名
2】必须借助接口或父类
3】通过实例化函数式接口就可以完成匿名内部类实现此接口并重写方法
//5.匿名内部类,没有类名称,必须借助接口
like = new ILike() {
@Override
public void testLambda() {
System.out.println("i like lambda4");
}
};
like.testLambda();
四、用 Lambda 简化匿名内部类的写法
1】匿名内部类是为了省去类名的写法
2】Lambda 简化写法不但可以省去类名,还可以省去接口名和函数名。因为只有一个抽象方法,可以直接实现并指向这个抽象方法和方法体
//6.用lambda简化,因为接口中只有一个函数,所以可以直接省略实例化的接口名和函数名
like = () -> {
System.out.println("i like lambda5");
};
like.testLambda();
概括:
1】匿名函数写法和匿名类写法的前提必须基于函数式接口
2】匿名函数写法和匿名类写法其本质是同一个东西,只是简化写法不同
网友评论