Runable 是一个函数接口,再创建线程时可以使用 Lamda 表达式,下面是 Lamda 的简化过程
public class index {
// 3.实现静态类
static class Student1 implements ILike {
@Override
public void eat() {
System.out.println("student1-eat");
}
}
public static void main(String[] args) {
ILike like = new Student();
like.eat();
ILike like1 = new Student1();
like1.eat();
// 4. 内部实现类
class Student2 implements ILike {
@Override
public void eat() {
System.out.println("student2-eat");
}
}
ILike like2 = new Student2();
like2.eat();
// 5. 匿名内部类,没有类的名称,必须借助接口或者父类
ILike like3 = new ILike() {
@Override
public void eat() {
System.out.println("student3-eat");
}
};
like3.eat();
// 6. lambda 简化
ILike like4 = ()->{
System.out.println("student4-eat");
};
like4.eat();
}
}
// 1. 定义一个接口
interface ILike {
void eat();
}
// 2.定义一个类并继承接口
class Student implements ILike {
@Override
public void eat() {
System.out.println("student-eat");
}
}
- 前提是接口为函数接口,一个接口中只有一个方法,如ILike
- 只能有一行代码的情况下才能写到一行中
ILike like4 = ()->System.out.println("student4-eat");
- 多个参数也可以去掉参数类型,要去掉都去掉,必须加括号
ILike like4 = (a,b)->System.out.println("student4-eat");