SwimmingTest.java 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package course;
  2. /**
  3. * @author WanJl
  4. * @version 1.0
  5. * @title SwimmingTest
  6. * @description
  7. * @create 2026/8/3
  8. */
  9. public class SwimmingTest {
  10. public static void getSwimming(Swimming s){
  11. s.swim();
  12. }
  13. public static void main(String[] args) {
  14. //实现Swimming接口并且重新swim()方法的方式,以前有两种:
  15. //1、建立实现类,创建实现类对象。
  16. //2、创建Swimming的匿名内部类,并且重写方法
  17. getSwimming(new Swimming(){
  18. @Override
  19. public void swim() {
  20. System.out.println("自由泳.....自由....免费");
  21. }
  22. });
  23. //3、使用lambda表达式--其实就是另一种形式的匿名内部类
  24. getSwimming(
  25. ()->{
  26. System.out.println("蛙游.....呱....呱");
  27. }
  28. );
  29. Swimming swimming = new Swimming() {
  30. @Override
  31. public void swim() {
  32. System.out.println("自由泳.....自由....免费");
  33. }
  34. };
  35. swimming.swim();
  36. //lambda表达式
  37. Swimming sw= ()->{
  38. System.out.println("蛙游.....呱....呱");
  39. };
  40. //前面我们定义了格式规则:Swimming接口,并且里面只有一个需要重写的抽象方法。
  41. //那么()能够指向的就只有一个需要重写的抽象方法,->指向的就是{代码块}也就是重写抽象方法的代码块内容
  42. sw.swim();
  43. }
  44. }