Lambda表达式的理解为:函数式接口的简写,可以作为参数进行传递
//定义接口
interface Ifly{
void fly();
//实现功能飞
}
interface Italk{
void talk();
/
/函数式接口实现功能说
}
abstract class Animal{
void breed() {};
}
abstract class Duck extends Animal{
void swim(Ifly i) {};
//接口类型的参数
}
class Goose extends Animal{
// 通过Lambda 表达式定义接口类型的成员变量
Ifly ifly = () -> {System.out.println("大雁能飞");};
// 通过匿名内部类实现接口类型的成员变量
Ifly Ifly = new Ifly() {
@Override
public void fly() {
System.out.println("大雁能飞");
}
};
}
class DuckT extends Duck{
@Override
void breed() {
System.out.println("唐老鸭繁殖");
DuckT duckT = new DuckT();
//Lambda表达式作为参数进行传递
duckT.swim(() -> {System.out.println("唐老鸭");});
}
}