接口知识详解

接口:

一个类当中,所有的方法都是抽象方法,这个类就是作为制定规则的一个类,所有子类必需强制重写该类的所有方法。声明规则的就称之为接口。

  • 接口也是一种引用数据类型
  • 接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。

存在的意义 :

  • 用来定义规范

  • 用来做功能的拓展

接口的定义:

  • 接口用关键字interface关键字修饰;
public interface 接口名 {} 
  • 接口不能创建对象, 我们可以创建接口的子类,将抽象方法重写之后进行使用;
  • 接口和类之间不是继承关系,是实现关系,实现接口用implements关键字表示;
public class 类名 implements 接口名 {}
  • 接口的子类(实现类),要么重写接口中的所有抽象方法,要么子类也是抽象类,最终也将重写所有抽象方法。
  • 接口的实现类,支持多实现,可以实现多个接口文件
public class 类名 implements 接口1,接口2 {}

接口的特点:

  • 成员变量,只能是常量,系统会默认加上三个修饰符:public static final

  • 没有构造方法,因为接口主要是扩展功能的,而没有具体存在;它的实现类中的构造方法中,super()访问的是所有类的父类object

  • 成员方法,只能是抽象方法,系统默认修饰符:public abstract

JDK8之后的新特性:

JDK8新特性:

  • 成员方法改进:允许接口定义带有方法体的非抽象方法,但是需要使用default关键字修饰,这种方法被称之为默认方法,用以解决接口升级问题。

  • 默认方法定义格式:
    public default 返回值 方法名(参数){}
    //public可以省略 default不能省略
  • 默认方法不是抽象方法,不强势重写,但可以被重写;
  • 如果实现类实现多个接口,多个接口中声明相同默认方法,则必需对默认方法进行重写,重写的时候去掉defaula关键字
  • 接口中允许定义static静态方法,需要使用static替换defaula使它成为静态方法,静态方法只允许被接口名调用

JDK9新特性:

  • 方法允许private私有化,私有化后应去掉defaula关键字。

类和接口的关系:

  • 类与类的关系:

    继承关系,只能单继承,但是可以多层继承

  • 类与接口的关系:

    实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口,如果直接父类和接口中出现了相同的方法声明,但代码逻辑不一样,优先使用父类的代码逻辑。

  • 接口与接口的关系:

    继承关系,可以单继承,也可以多继承,继承的多个接口出现了相同的方法声明,但代码逻辑不一样,则必需进行方法重写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JIE结弦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值