函数式接口: 只有一个抽象方法的接口叫函数式接口
-
- /**
- * Lambda表达式简化过程
- */
- public class DemoLambda {
- // 3.静态内部类
- private static class Dog2 implements Animal {
-
- @Override
- public void eat() {
- System.out.println("小狗爱啃骨头 2");
- }
- }
-
- public static void main(String[] args) {
- Animal dog = new Dog1();
- dog.eat();
-
- dog = new Dog2();
- dog.eat();
-
- // 4.局部内部类
- class Dog3 implements Animal {
-
- @Override
- public void eat() {
- System.out.println("小狗爱啃骨头 3");
- }
- }
- dog = new Dog3();
- dog.eat();
-
- // 5.匿名内部类
- dog = new Animal() {
- @Override
- public void eat() {
- System.out.println("小狗爱啃骨头 4");
- }
- };
- dog.eat();
-
- // 6.Lambda表达式
- dog = () -> {
- System.out.println("小狗爱啃骨头 5");
- };
- dog.eat();
- }
- }
-
- /**
- * 1. 定义一个函数式接口
- * 只有一个抽象方法的接口叫函数式接口
- */
- interface Animal {
-
- void eat();
- }
-
- /**
- * 2. 定义一个Animal接口的实现类
- */
- class Dog1 implements Animal {
-
- @Override
- public void eat() {
- System.out.println("小狗爱啃骨头 1");
- }
- }
-
- class Cat implements Animal {
-
- @Override
- public void eat() {
- System.out.println("小猫爱吃鱼");
- }
- }