Java面向对象——接口

接口

  • 接口的作用是制定标准的
  • 接口具有可扩展性
  • 解耦合:降低程序之间的耦合度
  • 接口与接口之间采用多继承
  • 接口与类之间采用多实现

    实现接口,就必须实现接口中的所有抽象方法
    如果不想实现某些抽象方法,那么就必须将该类做成抽象类
public interface Shape {  //接口的创建

关键字 interface(接口)

特点:

  • 所有的方法都是公开抽象方法
  • 所有的属性都是公开的,静态的,常量(final),都是public static final 修饰的
  • 接口中 没有 构造方法,所以不能创建对象,由实现类进行接口的 创建
  • 接口中 允许 定义 default (默认)成员 方法
  • 接口中 允许 定义 私有 成员方法
  • 接口中 允许定义公开/私有 静态方法

implements接口的实现

  • 接口与类实现多 实现(implements)
public class Circle implements Shape{ //实现接口与类的对接

写接口和抽象类,尽量使用多态,把子类对象给父类引用

在这里插入图片描述

接口
public interface ATM {
    int getMoney(int money);
}
类的实现
public class ABCATM implements ATM{
    @Override
    public int getMoney(int money) {
        return money + 1;
    }
}
匿名内部类
public class ATMTest {

    public static void main(String[] args) {

        ATM atm = new ATM() {
            @Override
            public int getMoney(int money) {
                return money + 1;
            }
        };
        int money = atm.getMoney(500);
        System.out.println(money);

//        ATM atm  = new ABCATM();
//        int money  = atm.getMoney(500);
//        System.out.println(money);



//        int m = getMoney(new ATM() {
//            @Override
//            public int getMoney(int money) {
//                return money + 1;
//            }
//        },500);
//        System.out.println(m);
//
//    }
//    public static int getMoney(ATM atm , int money){
//        return atm.getMoney(money);
    }

}

函数式接口

  • 接口中有且只有一个抽象方法,这样的接口可以称为函数式接口
  • 函数式接口 支持 lambda 表达式(简化匿名内部类的写法)

lambda 语法:

(参数列表) —>(代码实现)—> 最终的产物是快速构建该函数式接口的子类对象
函数式接口有且只有一个接口
(参数列表)指的是唯一的一个抽象方法的参数列表
–> 固定的
(代码实现)指的是 抽象方法的具体实现
*在 lambda 表达式的参数列表中
* a).所有的参数的类型可以省略不写
* b).如果有且只有一个参数,则可以省略小括号

  • lambda 表达式的代码实现中
    a).如果代码的实现只有一行代码,则可以省略大括,且该语句结尾的分号必须省略
    b).如果省略大括号后,该语句如果好 return 关键字,则必须省略 return
		// int m = getMoney((int money) -> { return money + 1;},50);
       // int m = getMoney(money -> {return money + 1 ;},50);
        int m = getMoney(money -> money + 1,50);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值