首页技术文章正文

Java接口怎样使用?JDK8接口新特性详解

更新时间:2023-08-31 来源:黑马程序员 浏览量:

IT培训班

接口可以理解为是一种规范,接口中的成员都是public修饰的,写不写都是,因为规范的目的是为了公开化。Java JDK8之前接口中只能是抽象方法和常量,没有其他成分。但需要注意接口不能实例化。

接口的用法:

接口是用来被类实现(implements)的,实现接口的类称为实现类。实现类可以理解成所谓的子类。

修饰符 class 实现类 implements 接口1, 接口2, 接口3 , ... {
}
实现的关键字:implements

从上面可以看出,接口可以被类单实现,也可以被类多实现,也就是一个接口可以继承一个接口也可以同时继承多个接口。但一个类实现接口,必须重写完全部接口的全部抽象方法,否则这个类需要定义成抽象类。

JDK8开始接口新增的方法

默认方法

类似之前写的普通实例方法必须用default修饰,默认会public修饰。需要用接口的实现类的对象来调用。

default void run(){
   System.out.println("--开始跑--");
}

静态方法

默认会public修饰,必须static修饰。接口的静态方法必须用本身的接口名来调用,静态方法实现可以参考以下方法。

static void inAddr(){
   System.out.println("我们都在黑马培训中心快乐的学习Java!");
}

私有方法

私有方法就是私有的实例方法:,必须使用private修饰,从JDK 1.9才开始有的。只能在本类中被其他的默认方法或者私有方法访问。

private void go(){
    System.out.println("--准备--");
}

JDK8版本开始后,Java只对接口的成员方法进行了新增,允许接口中直接定义带有方法体的方法,原因是接口丰富后可能对子代码进行更改。
例如下面的项目,Version1.0 成功上线没有问题。

public interface Inter {
    …若干抽象方法
}
public class InterImplA implements Inter {}
public class InterImplB implements Inter {}

在项目Version2.0时需要扩展功能,对Inter接口丰富,于是加入10个新的抽象方法,此时改了接口就要所有实现类实现这些方法。

public interface Inter {
    …若干抽象方法
}
public class InterImplA implements Inter {}
public class InterImplB implements Inter {}

要丰富接口功能的同时又不对子类代码进行更改。就要允许接口中直接定义带有方法体的方法。

注意:JDK8新增的3种方法我们自己在开发中很少使用,通常是Java源码涉及到的,我们需要理解、识别语法、明白调用关系即可。


分享到:
在线咨询 我要报名
和我们在线交谈!