接口的概述

接口:Java提供了一个关键字interface,用这个关键字我们可以定义出一个特殊的结构:接口

public interface 接口名{
// 成员变量(常量)
// 成员方法(抽象方法)}(只能有这两种成分)

**注意:**接口不能创建对象;接口是用来被类实现(implements)(理解成继承)的,实现接口的类叫实现类(理解成子类)

修饰符 class 实现类 implements 接口1,接口2,接口3 …{}
一个类可以以实现多个接口(接口理解成干爹),实现类实现多个接口,必须重写接口的全部抽象方法,否则实现类需要定义成抽象类

接口的好处
1)可以解决类单继承的问题,通过接口,我们可以让一个类有一个亲爸的同时,找若干个干爹去扩展自己的功能。
原因:通过接口找干爹,可以在implements上显性的知道你是谁
2)一个类可以实现多个接口,一i个接口也可被多个类实现,这样就可以面向接口编程了。

接口jdk8后新增的方法

1,私有方法和默认方法默认被public修饰:接口是用来被调用的,需要暴露。

2,维护成本降低,接口能力增强。

3,三种方法:

public interface A{
    //1,默认方法(实例方法):使用default修饰,默认会被加上public修饰。注意:只能使用接口的实现类对象调用
    default void test1(){
        ...
    }
    //2,私有方法:必须用private修饰(jdk9开始支持)
    private void test2(){}
    // 3,类方法(静态方法):使用static修饰,默认会被加上public修饰 。注意:只能用接口名来调用。
    static void test3(){}
}
接口的其他细节

1,接口的多继承:一个接口可以同时继承多个接口

public interface C extends B,A{}

作用:便于实现类去实现。

2,(了解

一个接口要继承多个接口,不能存在多个接口存在方法签名冲突,否则不能多继承。

interface I{void test();}
interface J{String test();}
// interface K extends I,J{} // 报错

一个类实现多个接口,就不能有多个接口存在方法签名冲突,否则不能多实现。

class E implements I,J{} // 报错

一个类继承了父类,又实现了接口,父类和接口中有同名的默认方法,优先实现父类。

一个类实现了多个接口,多个接口存在同名默认方法,可以不冲突,只需该类重写该方法即可。

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值