public class LambdaTest {
//2.内部类
static class Car2 implements Car{
@Override
public void carColor(String color) {
System.out.println("car2是"+color+"颜色");
}
}
public static void main(String[] args) {
//3.局部内部类
class Car3 implements Car{
@Override
public void carColor(String color) {
System.out.println("car3是"+color+"颜色");
}
}
Car car=new Car1();
car.carColor("蓝色");
car=new Car2();
car.carColor("红色");
car=new Car3();
car.carColor("白色");
//4.匿名内部类
car=new Car(){
@Override
public void carColor(String color) {
System.out.println("car4是"+color+"颜色");
}
};
car.carColor("黑色");
//5.lambda简化 使用条件,接口必须是函数式接口:只有唯一一个抽象方法的接口
car=(String color) ->{
System.out.println("car5是"+color+"颜色");
};
car.carColor("绿色");
//6. lambda再简化。
// 简化参数类型,当有多个参数时,要简化就都简化
//简化参数括号,仅当参数只有一个时
//简化花括号,仅当代码块只有一条语句时
car=color -> System.out.println("car6是"+color+"颜色");
car.carColor("粉红色");
}
}
interface Car{
void carColor(String color);
}
//1.外部类
class Car1 implements Car{
@Override
public void carColor(String color) {
System.out.println("car1是"+color+"颜色");
}
}