【Java 接口】:规范的思想

1,286 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

1、写在前面

大家好,我是翼同学。今天笔记的内容是:

  • Java接口

2、内容

2.1、什么是接口?

接口是一种技术,可用于描述类具有的功能,而不用给出每个功能的具体实现。在Java中,一个类可以实现一个或多个接口。

简单来说,接口不是类,而是对类的一组需求描述。对于接口的实现类,则必须遵从接口描述的统一格式进行定义。这体现了接口的规范思想。

2.2、接口如何定义?

我们使用关键字interface来定义接口。

注意,接口是隐式抽象的,当声明接口时,可以不用abstract关键字。

接口定义的格式如下:

public interface 接口名 {
    // 常量
    // ...
    // 抽象方法
    // ...
}

举个例子:

public interface Demo {
    // 静态常量
    public static final String name = "Hello World.";
    // 抽象方法
    public abstract void func();
}

2.3、接口的用法

接口就是用来被实现的,关键字为implements,实现接口的类称为实现类。

一个类通过实现接口,进而继承接口中的抽象方法。注意,接口和抽象类并不一样,抽象类描述了对象的属性和方法,而接口则包含类要实现的方法。

实现类的格式如下:

修饰符 class 类名 implements 接口1, 接口2, ...{ 
    // 具体实现
}

一个类只能继承一个抽象类,但却可以实现多个接口。

另外,在Java中,类的多继承是不合法,但接口允许多继承。这使得我们可以合并规范,整合多个接口为一个接口,便于子类的实现。

2.4、小结

接口的特点如下:

  • 接口没有构造方法,也无法被实例化;
  • 接口的成员变量只能是常量,默认修饰符public static final
  • 接口的成员方法只能是抽象方法。默认修饰符public abstract
  • 接口中的所有方法默认是公开的,所以在接口中定义方法时可以不使用public关键字;
  • 一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类;
  • 一个类继承了父类,同时又实现了某个接口,如果此时父类和接口有一个同名方法,则默认使用父类的方法;
  • Jdk8之前,接口之中只能有抽象方法常量出现,不允许有其他成分;
  • Jdk8之后,接口中可以使用default关键字修饰的非抽象方法;
  • Jdk9之后,接口允许将方法定义为private,这使得某些复用的代码不会把方法暴露出去。

3、写在最后

好了,今天的笔记就记到这里。