Java 接口和函数式接口(lambda表达式)

本文详细介绍了Java接口的定义、特点,强调了接口在软件设计中的作用,如制定标准、增强可扩展性和解耦合。此外,文章还深入探讨了函数式接口的概念,指出只有一个抽象方法的接口被称为函数式接口,并且支持Lambda表达式,简化了匿名内部类的创建。Lambda语法的使用规则也在文中进行了讲解。
摘要由CSDN通过智能技术生成

接口

接口其实就是一个特殊的抽象类
如果一个抽象类的方法全是抽象的,并且属性是被public static final修饰的,直接使用接口修饰该类

接口的定义 interface
  1. 制定标准
  2. 可扩展性
  3. 解耦合
  4. 接口与接口之间采用 多继承
  5. 接口与类之间采用 多实现implements
特点:
  1. 接口是特殊的抽象类
  2. 接口中定义的成员方法都是抽象方法
  3. 接口中的属性都是被public static final 修饰的(接口中省略修饰符)
  4. 接口中没有构造方法
  5. 接口中允许定义 default 成员方法
  6. 接口中允许定义私有成员方法
  7. 接口中允许定义公开/私有 静态方法

函数式接口:

如果接口中,有且只有一个抽象方法,那么这个接口被称为函数式接口
编译时检查 @FunctionalInterface

  • 函数式接口 支持 lambda 表达式(作用:简化匿名内部类的写法)
  • lambda 语法:(参数列表) ->{代码实现}
    —> 最终的产物是 快速构造函数式接口的子类对象
  1. (参数列表) 指的就是 唯一的一个抽象方法的参数 列表
  2. -> 固定的
  3. {代码实现} 指的是 抽象方法的具体实现

注意:

  1. 在 lambda 表达式的参数列表中:
    a) 所有参数的类型 可以省略不写
    b) 如果 有且只有一个参数,则可以省略 小括号
  2. 在 lambda 表达式的 代码实现 中:
    a) 如果 代码的实现 只有一行代码,则可以省略 大括号,且该语句结尾的分号也必须省略
    b) 如果省略大括号后,该语句包含 return ,那么return 也要省略

案例一 :

接口

@FunctionalInterface
// 检查接口是否满足 函数式接口(有且只有一个抽象方法)
public interface ATM {
   
    int getMoney(int money);
}

实现类

public class ATMTest{
   
    public static void main(String[] args) {
   

        /*int m = getMon
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值