Java中接口的作用以及可以包含的内容的详解

0、前言

由于疫情的原因,在家待的时间有点长了,一开始还能稍微学习一会,但是最近真顶不住了,各种莫名的烦躁,一点也学不下去了,愁啊,啥也不会还不想学习,我真是没救了。那就复习一下以前学过的,不去接触新东西了省的一不会又开始燥起来,顺道夯实一下基础。好了,废话就扯这么多,下面开始我们的主角,接口。

1、接口到底是干啥的,以及为什么需要接口

我们想过一个问题没有,就是我们给手机充电的时候,只需要一个充电器头和一根数据线就可以,走到哪都能充电。无论你是在家还是在学校亦或者是火车站,找个插座怼上就能充电。这是为什么呢,他们是商量好的吗,插座有两个口以及两个口之间的距离还都是一样的。答案是否定的,你想吧,全国有那么多生产插座的厂商呢,你要他们商量一下这个事,那就不用生产了,就这个问题能讨论到老死。这个时候就需要一个权威机构站出来,告诉大家,都不用讨论了,我指定一个规范你们生产厂家要想生产插座,就必须实现这个规范里要求的全部内容,至于还需不需要在这个基础上添加新内容你们自己决定。
我们Java中的接口就是这个规范,它要求你必须实现它给定的要求(对应到到Java中就是接口中的抽象方法)。接口是干啥的,就很明了了,就是规定你在生产一个东西的时候必须实现的某些基础的功能以及实现的基础性要求(例如俩个插口之间的距离),为什么需要接口呢,就是怕你们乱来。

2、接口内都可以有哪些内容

不同的JDK版本可以有的内容不一样,我们按照不同的版本进行介绍,注意高版本的包含低版本的东西,下面列出的都是每个版本新增的内容。

版本 内容
JDK 7及以前 成员常量、抽象方法
JDK 8 默认方法、静态方法
JDK 9及以后 私有方法

各个成员在接口中的定义:

  • 成员常量
public static final int NUM = 10;  //常量名建议全部大写,初始化时必须赋值
  • 抽象方法
public abstract void eat();
  • 默认方法
public default void drink(){
   
};
  • 静态方法
public static void house(){

}
  • 四有方法
private void pay(){

}

上面的有些修饰符在书写的时候可以省略,编译器默认只能添加这个修饰符,所以对于我们省略的修饰符他会帮我们自动加上,具体可以省略哪些。下图中前面是灰色的部分就是
在这里插入图片描述

2、使用情况以及注意事项

在这里插入图片描述
关于静态方法使用的实现类惊进行调用会出错的情况我们给出实验证明一下:
在这里插入图片描述

4、接口与父类的方法优先级问题

如果我们实现的接口和继承自父类的方法签名相同的话,会使用父类的方法,而不是接口中的。

发布了141 篇原创文章 · 获赞 131 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_41621362/article/details/105343872
今日推荐