15 接口

作者: ca8519be679b | 来源:发表于2020-02-15 22:20 被阅读0次

接口

定义:公共的规范标准

1

接口是多个类的公共规范,上图描述了不同版本jdk的包含内容,现在我用的是9,所以常量,抽象方法,默认方法,静态方法,私有方法都可以有

格式public interface 接口名{},

使用intelliJ用新建选择interface

2 3

然后就自动创建了我们起名的interface接口

接口定义抽象方法格式public abstract xx(参数列表);接口中的抽象方法,修饰必须是public abstract(2个修饰符可以选择性省略,但是不建议)

4

使用接口抽象方法

接口使用和抽象类类似,但是不一样

格式   public class 类名 implements 接口名称{...}            这里关键字为implements而不是extends

接口的实现类必须重写接口的所有抽象方法,去掉abstract,加上{代码},最后创建实现类的实例

这里IDE IntelliJ还是可以通过alt+enter实现快速添加复写抽象方法

5 6 7

如上使用实现类implements接口,然后使用main类实例实现类调用复写方法

使用接口默认方法

从java8开始,接口可以定义默认default方法,为什么要考虑默认方法呢,比如我们定义了一个接口,然后其他人继承写了2个实现类,复写了对应抽象方法,但是如果这个接口升级了,多添加抽象方法就会使2个实现类都报错,这时就考虑使用default方法实现

8 9

如上2个图,我们给接口添加了抽象方法,实现类没更新就会标红保错

10

而当我们使用默认方法,报错就会消失,这里可以看到public是灰色的,证明可以省略,但是不建议,接口的默认方法记得关键字default,而且要有方法体,default默认方法子类是默认继承的,不复写的话可以直接调用

11

使用接口静态方法

从java8开始,接口可以使用静态方法,我们使用其静态方法一般不需要继承,直接使用静态方法即可,和之前的工具类的思想一样

12 13

使用接口私有方法

从java9开始,接口允许使用私有方法

14

如上我们在一个接口里定义了2个默认函数,里面有很多重复的部分,我们可以定义一个公共方法打印后3行,但是我们不希望这个公共方法被子例访问到,希望是私有化的,我们就需要定义私有方法

私有方法格式

普通私有方法 public 返回类型 方法名(参数列表){...}                用于解决普通成员方法间重复代码

静态私有方法 public static 返回类型 方法名(参数列表){...}     用于解决静态方法间重复代码,这里区别是因为静态代码无法访问非静态变量,方法

私有化的好处时,有人可能尝试实例化后调用这段方法,但是这部分是不能独立存在,必须依赖于几个方法中的,我们就不让其被外部调用,只让其在内部函数间调用

接口常量使用

我们在接口里也可以成员变量,其实这相当于是常量定义

格式 public static final 数据类型 数据名 = 值;

关键字里public我们知道是公有的,static我们知道是静态,使用接口来调用,不用实例,而final我们之后会讲,这里我们需要知道的就是不能修改

15

我们可以看到定义常量,public,static,final都是灰色的,即这些都是可以省略的,而且必须赋值不能只声明,而且建议常量名称全部大写,用下划线进行分割,如NUM_OF_MY_CLASS

注意:接口没有构造方法和静态代码块

我们知道类只能继承一个父类,但是实现类可以implements多个接口

16

如上,定义了MyInf继承InfA,InfB,这时候就需要同时复写2个接口的抽象方法,当然还是用IDE的ALT+ENTER。如果implements的多个接口有重名,只需要重写1次即可,因为写成了自己的

如果我们就是想不复写所有的方法,这样普通类implements就会报错,我们只能使用abstract抽象类来实现

如果我们implements了多个接口,而他们有不同的重名默认方法,我们实现类就需要复写方法

如果类继承父类又implements接口,2者有重名的默认方法,则我们子类调用的时候是使用父类的方法

17 18 19 20

相关文章

  • 15 接口

    接口 定义:公共的规范标准 接口是多个类的公共规范,上图描述了不同版本jdk的包含内容,现在我用的是9,所以常量,...

  • 15.接口

    1.什么是接口 2.接口的基本语法 什么是接口? 电脑USB接口--->MP3、电脑USB接口--->手机、电脑U...

  • 【网络安全】记一次接口加密测试

    前言 之前接到一个接口测试项目,就提供了一个demo源码和接口设计文档,文档里一共有15个接口。 本来以为接口测试...

  • 15.WebApplicationInitializer接口

    简单介绍一个WebApplicationInitializer接口,它里面有一个onStartUp方法,参数是一个...

  • RS232 485 TCP/IP

    RS232 串行通信接口,实现点对点传输,但不能实现联网功能。 (1)接口的电平值较高,逻辑1为-3~-15,逻辑...

  • python入门开发学习笔记之抽象类

    本节重点 接口与归一化设计 抽象类 本节时长需控制在15分钟内 接口与归一化设计 1.什么是接口 hi boy,给...

  • 一个类实现的多个接口,有相同签名的默认方法

    方法运行优先级:类或超类->子接口->父接口 本文章程序验证均使用Eclipse软件javaSE-15环境 一、两...

  • 2018-11-15晨间日记

    今天是什么日子 起床:8:15 就寝:0:15 天气:多云 任务清单 昨日完成的任务,最重要的三件事: 接口权限 ...

  • 2021-11-18-⛵︎数图番外篇-液晶显示器原理

    显示器接口 VGA VGA接头:针数为15的视频接口,主要用于老式的电脑输出。VGA输出和传递的是模拟信号。大家都...

  • 《Effective Objective-C 2.0》读书/实战

    《Effective Objective-C 2.0》读书/实战笔记 二 第3章:接口与API设计 ?? 第15条...

网友评论

      本文标题:15 接口

      本文链接:https://www.haomeiwen.com/subject/tccdfhtx.html