Java基础---B站学习---函数式接口

Java—函数式接口

概念:

指的是在Java中,有且只有一个抽象方法的接口,接口中也可以包含其他的方法(静态的,私有的,默认的),但是抽象方法只能有一个
在这里插入图片描述
Lambda被称为可推导,可省略

语法糖概念:

在这里插入图片描述

格式:

只要确保接口中有且仅有一个抽象方法即可

在这里插入图片描述

由于接口当中的抽象方法的public abstract是可以省略的,所以定义一个函数式接口很简单

在这里插入图片描述

@FunctionalInterface注解

在这里插入图片描述

@FunctionalInterface
public interface MyFunctionInterfance {
    void method();
}

函数式接口的使用

一般可以作为方法的参数和返回值类型
public class Demo {
    // 定义一个方法,使用函数式接口MyFunctionInterfance
    public static void show(MyFunctionInterfance myInter){
        myInter.method();
    }

    public static void main(String[] args) {
        // 调用show方法,方法的参数是一个接口,所以可以传递接口的实现类
        show(new MyFunctionInterfanceImpl());
        // 调用show方法,方法的参数是一个接口,所以可以传递接口的匿名内部类
        show(new MyFunctionInterfance() {
            @Override
            public void method() {
                System.out.println("使用匿名内部类重写接口中的抽象方法1");
            }
        });
        // 调用show方法,方法的参数是一个函数接口,所以可以使用Lambda表达式()是抽象方法的参数,{}是方法体
        show(()->{
            System.out.println("使用匿名内部类重写接口中的抽象方法2");
        });
        // 简化Lambda表达式
        //     1.{}中只有一行,可以省略
        show(()->System.out.println("使用匿名内部类重写接口中的抽象方法3"));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值