From 7f4b0cd01c44d4ba76e20de999f1395e2f404cea Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 10 Mar 2026 15:57:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day06-=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=BC=8F=E6=8E=A5=E5=8F=A3=E7=9A=84=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inmind/functional_interface02/Demo04.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/javaSE-day07/src/com/inmind/functional_interface02/Demo04.java b/javaSE-day07/src/com/inmind/functional_interface02/Demo04.java index 6ed600c..3bf5e6b 100644 --- a/javaSE-day07/src/com/inmind/functional_interface02/Demo04.java +++ b/javaSE-day07/src/com/inmind/functional_interface02/Demo04.java @@ -9,6 +9,51 @@ package com.inmind.functional_interface02; 扩展:为何在一个接口中某些抽象方法不需要被重写??比如Comparator接口 在一个类中如果单继承和多实现,单继承的方法优先级高于接口中的方法定义,导致父类方法中 如果有跟接口中重名的方法实现的话,那么就相当于在子类中默认重写了接口的方法 +------------------------------------------------------------------ + 函数式接口的使用: + 1.作为参数 + 2.作为返回值 + */ public class Demo04 { + public static void main(String[] args) { + //匿名内部类的方式来调用getValue()方法 + /*int value = getValue(new MyInterface() { + @Override + public int getSum(int a, int b) { + return a+b; + } + }, 10, 20);*/ +// int value = getValue((int a, int b)->{return a+b;},10,20); + int value = getValue((a, b)-> a+b,10,20); + System.out.println("运行结果1:"+value); + //------------------------------------------ + MyInterface instance = getInstance(); + int result = instance.getSum(10, 20); + System.out.println("运行结果2:"+result); + } + //定义出一个函数式接口作为返回值类型,参数列表定义为无参的静态方法 + public static MyInterface getInstance(){ + /*MyInterface myInterface = new MyInterface() { + @Override + public int getSum(int a, int b) { + return a*b; + } + };*/ +// MyInterface myInterface =(int a, int b)->{return a*b;}; +// MyInterface myInterface =( a, b)-> a*b; + return (a, b)-> a*b; + } + + + + //定义出一个有整数返回值,参数列表是函数式接口,2个整数的静态方法 + public static int getValue(MyInterface myInterface, int a, int b) { + int sum = myInterface.getSum(a, b); + return sum; + } + + + + }