1. 首先声明一个接口
1 package cn.itcast.day_05.test_06;
2
3 public interface Cook {
4
5 void makeFood();
6 }
2. 在主函数中写一个方法,传入的参数为上面所定义的接口
1 public static void invokeCook(Cook cook){
2
3 cook.makeFood();
4 }
3 三种不同的方式调用inVokeCook方法,并实现Cook接口中的方法
(1)创建接口对象,然后重写接口中方法,调用该方法,将接口对象传入该方法。
1 Cook cook = new Cook() {
2 @Override
3 public void makeFood() {
4 System.out.println("MakeFood");
5 }
6 };
7
8 invokeCook(cook);
(2)采用匿名内部类,直接调用invokeCook方法,在参数中进行对象创建和方法实现。
1 invokeCook(new Cook() {
2 @Override
3 public void makeFood() {
4 System.out.println("MakeFood");
5 }
6 });
(3)采用Lambda表达式,省略参数中创建对象的过程。
1 invokeCook(()->{
2 System.out.println("MakeFood");
3 });
tips:凡是调用一个方法,且该方法中需要传递的参数为接口,也就是说在调用该方法时需要:new+接口名{ 实现接口中的方法} 这种写法。并且接口中只有一个抽象方法。则一律使用lambda表达式