阶段二12_面向对象高级_接口1
创始人
2024-06-03 00:40:51
0

一.接口的介绍

当一个类中的所有方法都是抽象方法的时候,我们就可以将其定义为接口
接口也是一种引用数据类型,它比抽象类还要抽象

接口存在的两个重要意义
1)规则的定义
2)程序的扩展性

二.接口的定义和特点

1)接口用关键字interface来定义

public interface 接口名 {} 

2)接口不能实例化
3)接口和类之间是实现关系,通过implements关键字表示

public class 类名 implements 接口名 {}

4)接口的子类(实现类)

要么重写接口中的所有抽象方法
要么是抽象类

5)注意:接口和类的实现关系,可以单实现,也可以多实现。

public class 类名 implements 接口名1 ,  接口名2 {}

三.接口中成员的特点

1)成员变量

只能是常量
默认修饰符:public static final

2)构造方法

没有

3)成员方法

只能是抽象方法
默认修饰符:public abstract
关于接口中的方法,JDK8和JDK9中有一些新特性

四.JDK8版中接口成员的特点

1)JDK8版本后,允许在接口中定义非抽象方法,但是需要使用关键字 default 修饰,这些方法就是默认方法

1)作用:解决接口升级的问题
2)接口中默认方法的定义格式:格式:public default 返回值类型 方法名(参数列表) {   }范例:public default void show() {   }  
3)接口中默认方法的注意事项:默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键字public可以省略,default不能省略  [public系统默认会加,所以public可以省略,default不能省略]如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写

2)接口中允许定义static静态方法

  1)接口中静态方法的定义格式:格式:public static 返回值类型 方法名(参数列表) {   }范例:public static void show() {   }2)接口中静态方法的注意事项:静态方法只能通过接口名调用,不能通过实现类名或者对象名调用public可以省略,static不能省略

五.JDK9版中接口成员的特点

1)JDK9可以定义私有方法原因图解
图:06/图片/0_JDK9私有方法图解.PNG
在这里插入图片描述

2)接口中私有方法的定义格式:

格式1:private 返回值类型 方法名(参数列表) {   }
范例1:private void show() {   }
格式2:private static 返回值类型 方法名(参数列表) {   }
范例2:private static void method() {   }

六.接口的使用思路

如果发现一个类中所有的方法都是抽象方法,那么就可以将该类,改进为一个接口
涉及到了接口大面积更新方法,而不想去修改每一个实现类,就可以将更新的方法,定义为带有方法体的默认方法
希望默认方法调用的更加简洁,可以考虑设计为static静态方法。(需要去掉default关键字)
默认方法中出现了重复的代码,可以考虑抽取出一个私有方法。(需要去掉default关键字)

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...