Java从接触到放弃(十二)--接口

Day Twelve

接口

接口就是一种规范,是一系列方法的声明,是一些方法特征的集合。

一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,然而这些实现可以具有不同的行为(功能)。

注意:

  • 可以说是一种特殊的抽象类,里面的方法全是抽象方法。
  • 子类在实现接口的时候必须对接口中的方法全部重写。

接口的声明

接口的声明语法格式如下:

修饰符 interface 接口名称 [extends 其他的接口名] {
    // 声明变量
    // 抽象方法 
}

接口的实现

当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。

类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。

实现一个接口的语法,可以使用这个公式:

...implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ...
重写接口中声明的方法时,需要注意以下规则:
  • 类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。
  • 类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。
  • 如果实现接口的类是抽象类,那么就没必要实现该接口的方法。
在实现接口的时候,也要注意一些规则:
  • 一个类可以同时实现多个接口。
  • 一个类只能继承一个类,但是能实现多个接口。
  • 一个接口能继承另一个接口,这和类之间的继承比较相似。
Java的接口中有没有构造方法?
  • 在接口中,不可以有构造方法
    • 在接口里面写构造方法时,编译器会爆红:Interfaces cannot have constructors
    • 构造方法用于初始化成员变量,但是接口中的成员变量是常量,无需修改。接口是一种规范,被调用的时候,主要看的是里面的方法,而方法是不需要进行初始化的。
    • 一个类可以实现多个接口,若干个接口都有自己的构造器,不好去决定先调谁的再调谁的。
接口和抽象类的语法区别:
  1. 接口不能有构造方法,抽象类可以有。
  2. 接口不能有方法体,抽象类可以有。
  3. 接口不能有静态方法,抽象类可以有。
  4. 在接口中凡是变量必须是 public static final修饰,也就是如果有变量的话必须要写死。而在抽象类中没有要求。

注:JDK 1.8 以后,接口里可以有静态方法和方法体了。

注:JDK 1.8 以后,接口允许包含具体实现的方法,该方法称为"默认方法",默认方法使用 default 关键字修饰。更多内容可参考 Java 8 默认方法

注:JDK 1.9 以后,允许将方法定义为 private,使得某些复用的代码不会把方法暴露出去。更多内容可参考 Java 9 私有接口方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜的跟狗一样

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

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

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

打赏作者

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

抵扣说明:

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

余额充值