接口的相关知识

接口

一、什么是接口?

接口是功能的集合,是一种数据类型,是一种比抽象类更抽象的“类”。接口只具备所应该有的方法,并没有具体的实现类,接口的实现有接口的实现类来实现(相当于接口的子类)。

  • 接口可以理解为一种特殊的抽象类,是由全局常量和公共的抽象方法组成的。JDK8以后可以接口中可以有default和static修饰的方法。
  • 接口的作用是定规范,为了被继承。
  • 接口属于复合类型
  • 当抽象类中都是抽象方法时,该抽象类可以由抽象 方法来实现。

二、接口的作用?

接口将功能的定义和实现相分离,优化了程序设计

  • 接口的出现扩展了功能
  • 接口其实就是暴露出来的规则
  • 接口的出现降低了耦合性,即设备与设备之间实现了解耦
  • 为了弥补Java的单继承的局限性。
  • 接口的出现扩展了功能,维护性好。
  • 接口的出现降低了耦合性

三、接口的定义

interface关键字来定义接口

  1. 定义接口所在的仍为.Java文件
  2. 编译后仍会产生.class文件,所以接口可以认为只包含了功能声明的特殊类。

定义格式:

访问修饰符  interface  接口名称{
    属性(全局常量)
    抽象方法
}
  • 全局常量,默认修饰符public static final可以省略一个或几个修饰符。

  • 全局常量必须要初始化

  • 接口中不能有普通的成员变量

  • 抽象方法默认修饰符public abstract

  • 接口里面不能有普通成员方法

  • JDK8以后,接口里可以有default修饰的方法,这个方法不能被接口子类重写。

  • 接口里的静态方法不能被继承也不能被重写。

  • 接口不能实例化

四、接口的实现

类接口的关系为实现关系,即类实现接口

子类通过implements关键字实现接口,在子类中覆盖接口中所有抽象类方法在类实现接口后,该类就会将接口中的抽象类方法继承过来,此时该类需要重写该类抽象方法,完成具体逻辑。

  • 接口是不可以创建对象的,因为有抽象方法。需要被子类实现,子类对接口中所有抽象方法全部覆盖后,子类才可以实例化。否则子类还是抽象类。
  • 接口可以被类多实现,不支持多继承。Java支持多实现。

五、接口的多实现

接口重要的体现:解决多继承的弊端。将多继承这种机制在Java中通过多实现完成。

  • 多继承的弊端:

    多继承是,当多个父类中有相同功能时,子类调用会产生不确定性。

    多继承父类中功能有主体,而导致调用运行时,不确定运行哪个主体内容。

  • 多实现怎么解决多继承的弊端:

接口中的功能都没有方法体,由子类来明确。

六、接口和类混搭

接口和继承混搭指的是子类既要继承抽象类,又要实现接口

  • 接口的出现避免了单继承的局限性。父类中定义的事物的基本功能。接口中定义的事物的扩展功能。

七、接口的多继承

Java中,接口不允许继承抽象类,但是接口可以继承另外一个接口,而且接口允许多继承,多个接口之间可以使用extends进行继承。

八、抽象类和接口的区别:

比较内容接口抽象类
定义用interface关键字表示用abstract关键字修饰类
组成正常类成员+抽象方法全局常量和抽象方法,可以有default和abstract修饰的方法
使用使用implements关键字实现接口需要一个类去继承它
关系不可以继承普通类,可以继承接口和抽象类中的抽象方法,抽象类中的成员变量和成员方法不可以被继承(相当于接口)可以实现接口不能继承接口
局限性多继承单继承
构造方法没有构造方法有但不能创建对象

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值