乐趣区

Java接口用法合集云图智联

一、接口的介绍

*   接口(Interface),在 JAVA 编程语言中是一个抽象类型,是抽象方法的集合,接口通常以 interface 来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。*   接口是一种引用类型,最重要的内容就是其中的抽象方法。

二、接口的定义与使用

1. 定义

2. 使用

实现接口的关键字:implements

【注意】> 1. 接口 ` 不能直接实例化 `,必须用一个 ` 实现类来实现接口 `  
> 2. 接口的 实现类必须重写接口中所有的抽象方法  
> 3. 如果 ` 实现类没有重写所有接口中的抽象方法 `,那么这个 ` 实现类一定是抽象类 `  
> 4. 接口中 没有构造方法和静态代码块

三、接口中允许定义的内容

1. 常量

(1)定义格式

(2) 使用

【注意】*   接口中的常量 ` 始终被 `public static final` 三个关键字修饰 `,且不可更改,编写代码时可以省略不写
*   常量 ` 定义之后必须赋值 `
*   命名规则:` 全部字母大写 `,` 多个单词用 _ 分隔 `

2.抽象方法(重点)

(1)定义格式

【注意】*   接口中的抽象方法 ` 始终被 `public abstract` 关键字修饰 `,且不可更改,编写代码时可以省略不写
*   抽象方法没有方法体

(2)抽象类使用实例
定义 接口,并用多种形式定义 抽象方法(效果相同)

创建 实现类 实现接口
实现类必须重写接口中所有的抽象方法

在 测试类 中 创建 实现类 对象

运行结果

3. 默认方法

默认方法可以用于 接口升级、拼接 lambda 表达式
(1). 定义格式

【注意】*   接口中的抽象方法 ` 始终被 `public` 关键字修饰 `,且不可更改,编写代码时可以省略不写
*   默认方法可以被实现类对象 ` 直接调用 `,可以被实现类 ` 重写 `

4. 静态方法

方法的内容属于类时,应该使用静态方法
(1) 定义格式

【注意】*   接口中的抽象方法 ` 始终被 `public` 关键字修饰 `,且不可更改,编写代码时可以省略不写
*   静态方法只能通过接口名称来调用(避免继承多个接口中存在重复静态方法)

5. 私有方法

不可以被实现类使用的方法应该私有化
(1) 定义格式
普通私有方法
解决多个默认方法的重复代码问题

四、接口的多实现与多继承

1. 实现多个接口

(1)格式

(2)代码实例

定义两个接口

创建实现类,继承两个接口

【注意】1. 一个类的直接父类是唯一的,但可以同时实现多个接口
2. 如果出现多个接口出现重复抽象方法,实现类只需要覆盖重写一个即可
3. 如果没有实现所有的抽象方法,那么实现类必须是一个抽象类 ==
4. 如果多个接口中存在重复的默认方法,那么实现类必须对重复的默认方法进行重写
5. 一个类如果直接父类当中的方法和接口中的默认方法重复,会优先使用直接父类的抽象方法(父类方法的优先级大于接口)

2. 接口的多继承

(1) 格式

(2)多继承实例
定义两个接口

定义一个 接口 继承两个接口

【注意】> 1. 如果多个接口中的抽象方法重复,没关系  
> 2. 如果多个父接口的默认方法重复,则子接口必须带着 default 关键字对重复的默认方法进行重写

五、接口与类

1. 接口与类相似点:

一个接口可以有多个方法。接口文件保存在 .java 结尾的文件中,文件名使用接口名。接口的字节码文件保存在 .class 结尾的文件中。接口相应的字节码文件必须在与包名称相匹配的目录结构中。

2. 接口与类的区别:

 接口不能用于实例化对象。接口没有构造方法。接口中所有的方法必须是抽象方法。接口不能包含成员变量。接口不是被类继承了,而是要被类实现。接口支持多继承。

3. 接口与抽象类

抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。接口中不能含有静态代码块以及静态方法(java 8+ 可以),而抽象类是可以有静态代码块和静态方法。一个类只能继承一个抽象类,而一个类却可以实现多个接口。
退出移动版