千家信息网

java接口指的是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍java接口指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!接口概念官方解释:Java 接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的
千家信息网最后更新 2026年10月31日java接口指的是什么

这篇文章主要介绍java接口指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

接口概念

官方解释:Java 接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

我的解释:接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决 Java 无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解为100%的抽象类,既接口中的方法必须全部是抽象方法。(JDK1.8之前可以这样理解)

接口的特点

就像一个类一样,一个接口也能够拥有方法和属性,但是在接口中声明的方法默认是抽象的。(即只有方法标识符,而没有方法体)。

  • 接口指明了一个类必须要做什么和不能做什么,相当于类的蓝图。

  • 一个接口就是描述一种能力,比如"运动员"也可以作为一个接口,并且任何实现"运动员"接口的类都必须有能力实现奔跑这个动作(或者 implement move()方法),所以接口的作用就是告诉类,你要实现我这种接口代表的功能,你就必须实现某些方法,我才能承认你确实拥有该接口代表的某种能力。

  • 如果一个类实现了一个接口中要求的所有的方法,然而没有提供方法体而仅仅只有方法标识,那么这个类一定是一个抽象类。(必须记住:抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类)

  • 一个 JAVA 库中接口的例子是:Comparator 接口,这个接口代表了"能够进行比较"这种能力,任何类只要实现了这个Comparator 接口的话,这个类也具备了"比较"这种能力,那么就可以用来进行排序操作了。

为什么要用接口

  1. 接口被用来描述一种抽象。

  2. 因为 Java 不像C++一样支持多继承,所以 Java 可以通过实现接口来弥补这个局限。

  3. 接口也被用来实现解耦。

  4. 接口被用来实现抽象,而抽象类也被用来实现抽象,为什么一定要用接口呢?接口和抽象类之间又有什么区别呢?原因是抽象类内部可能包含非 final 的变量,但是在接口中存在的变量一定是 final,public,static 的。

接口的语法实现

为了声明一个接口,我们使用 interface 这个关键字,在接口中的所有方法都必须只声明方法标识,而不要去声明具体的方法体,因为具体的方法体的实现是由继承该接口的类来去实现的,因此,接口并不用管具体的实现。接口中的属性默认为 Public Static Final.一个类实现这个接口必须实现这个接口中定义的所有的抽象方法。

一个简单的接口就像这样:拥有全局变量和抽象方法。


为了实现这个接口,我们使用 implements 关键词去实现接口:


其中 testClass 类实现了我们上面刚才定义的 in1 这个接口,既然你要实现接口,也就是实现接口代表的一种能力,那么你就必须去实现接口给你规定的方法,只有把接口给你规定的抽象方法都给实现了,才承认你这个类实现了这个接口,实现了这个接口代表的某种功能。上图实现了接口中规定的 display()方法。


写一个测试类,用来测试一下我们刚才实现的这个接口,因为testclass类的对象t实现了接口规定的 display 方法,那么自然而然就可以调用 display()方法咯。

接口的进一步理解

我们知道,如果某个设备需要向电脑中读取或者写入某些东西,这些设备一般都是采用 USB 方式与电脑连接的,我们发现,只要带有 USB 功能的设备就可以插入电脑中使用了,那么我们可以认为USB就是一种功能,这种功能能够做出很多的事情(实现很多的方法),其实 USB 就可以看做是一种标准,一种接口,只要实现了USB标准的设备我就认为你已经拥有了 USB 这种功能。(因为你实现了我 USB 标准中规定的方法),下面是具体的例子:

先声明USB接口:其中规定了要实现USB接口就必须实现接口规定实现的 read( )和 write( )这两个方法。

interface USB { void read(); void write();}

然后在写一个U盘类和一个键盘类,这两个类都去实现 USB 接口。(实现其中的方法)

class YouPan implements USB {
@Override
public void read() {
System.out.println("U盘正在通过USB功能读取数据"); }
@Override
public void write() {
System.out.println("U盘正在通过USB功能写入数据"); }}
这是U盘的具体实现。
class JianPan implements USB {
@Override
public void read() {
System.out.println("键盘正在通过USB功能读取数据"); }
@Override
public void write() {
System.out.println("键盘正在通过USB功能写入数据"); }}
这是键盘的具体实现。

那么,现在U盘和键盘都实现了 USB 功能,也就是说 U 盘和键盘都能够调用 USB 接口中规定的方法,并且他们实现的方式都不一样。

我们在写一个测试,来看看具体的实现:

public class Main {
public static void main(String[] args) {
//生成一个实现可USB接口(标准)的U盘对象
YouPan youPan = new YouPan();
//调用U盘的read( )方法读取数据
youPan.read();
//调用U盘的write( )方法写入数据
youPan.write();
//生成一个实现可USB接口(标准)的键盘对象
JianPan jianPan = new JianPan();
//调用键盘的read( )方法读取数据
jianPan.read();
//调用键盘的write( )方法写入数据
jianPan.write(); }}
结果如下:


感兴趣的同学可以去在线IDE平台自己验证一下:点击打开链接

关于接口的几个重点

  1. 我们不能直接去实例化一个接口,因为接口中的方法都是抽象的,是没有方法体的,这样怎么可能产生具体的实例呢?但是,我们可以使用接口类型的引用指向一个实现了该接口的对象,并且可以调用这个接口中的方法。因此,上图中最后的方法调用我们还可以这样写:(实际上就是使用了 Java 中多态的特性)

public class Main {
public static void main(String[] args) {
//生成一个实现可USB接口(标准)的U盘对象
//但是使用一个接口引用指向对象
//USB接口类引用可以指向一个实现了USB接口的对象
USB youPan = new YouPan();
//调用U盘的read( )方法读取数据
youPan.read();
//调用U盘的write( )方法写入数据
youPan.write();
//生成一个实现可USB接口(标准)的键盘对象
//但是使用一个接口引用指向对象
//USB接口类引用可以指向一个实现了USB接口的对象
USB jianPan = new JianPan();
//调用键盘的read( )方法读取数据
jianPan.read();
//调用键盘的write( )方法写入数据
jianPan.write(); }}

2.一个类可以实现不止一个接口。

3.一个接口可以继承于另一个接口,或者另一些接口,接口也可以继承,并且可以多继承。

4.一个类如果要实现某个接口的话,那么它必须要实现这个接口中的所有方法。

5.接口中所有的方法都是抽象的和 public 的,所有的属性都是 public,static,final 的。

6.接口用来弥补类无法实现多继承的局限。

7.接口也可以用来实现解耦。

接口的通俗理解

前面我们讲多态的时候用"空调"--"遥控器"的方式去理解多态,实际上在上面的的几个重点中的第一条讲的也是多态的实现,比如,我们可以把"节能"作为一种标准,或者说节能就是一个"接口",这个接口中有一个方法,叫做变频方法,任何空调,如果要称得上叫做节能空调的话,那么必须实现"节能"这个接口,实现"节能"这个接口,也就必须实现"节能"接口中规定实现的"变频"方法,这样才算是真正的实现了"节能"这个接口,实现了"节能"这个功能。

当某个空调实现了"节能"接口后,这个空调就具备了节能的功能,那么我们也可以不用空调类的引用指向空调对象,我们可以直接使用一个"节能"接口类型引用的"遥控器"去指向"空调",虽然这个"遥控器"上面只有一个按键,只有一个"变频"的方法,但是"遥控器"所指向的空调是实现了"节能"这个接口的,是有"变频"方法的实现的,我们用这个只有一个"变频"方法的遥控器去命令空调调用"变频"方法,也是行得通的。

接口的标识用法

虽然接口内部定义了一些抽象方法,但是并不是所有的接口内部都必须要有方法,比如 Seriallizable 接口,Seriallizable 接口的作用是使对象能够"序列化",但是 Seriallizable 接口中却没有任何内容,也就是说,如果有一个类需要实现"序列化"的功能,则这个类必须去实现 Seriallizable 接口,但是却并不用实现方法(因为接口中没有方法),此时,这个 Serilizable 接口就仅仅是一个"标识"接口,是用来标志一个类的,标志这个类具有这个"序列化"功能。具体的实现请参考我的另一篇文章--JAVA 之 IO 流。

接口在生活中的思想体现

其实,在我们的生活当中,有很多地方都体现了"接口"的思想,想必,正在阅读这篇博文的你,是不是也喜欢摄影呢?

玩摄影的童鞋都知道,单反由相机和镜头组成,相机分不同的型号,有半画幅的,也有全画幅的。镜头也是一样的,分长焦,短焦;还有定焦和变焦。每种镜头都有各自特定的发挥场景。正是因为镜头的多元化,使得我们的摄影能够"术业有专攻"。大家想一想,如果我们的单反相机部分和镜头部分是固定在一起的,不能够更换镜头,那么将会多么的糟糕啊!

因此,每个相机品牌为了能够兼容不同的镜头,各自发布了一套镜头卡口的标准,这套标准就好比我们前面提到的"接口",都是某种"约束"。举个栗子,我们佳能的相机,不管你是哪一家镜头生产厂商,腾龙也好,适马也好,只要你按照我佳能卡口的标准来生产镜头,你生产的镜头都能够很好的在我佳能相机上面驱动。

因此,当我们打开"某东",准备给自己的新相机买镜头的时候,就不难发现,我们需要根据自己相机的品牌来挑选特定卡口的镜头,这样的镜头才能被我们的相机常驱动。

回到 Java 上面来说,其实接口给我们带来的最大的好处就是"解耦"了,相机能够搭配不同的镜头,才能有各种各样的搭配玩法,变得更加的灵活。在软件系统中也是一样的,接口可以有很多不同"特色"的实现类,我们只需要声明同一个接口,却可以引用很多个该"接口"引申出来的"子类",这不也大大增强了我们软件系统中组件的灵活性吗?

以上是"java接口指的是什么"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

接口 方法 功能 镜头 对象 数据 标准 键盘 节能 相机 空调 指向 不同 只有 就是 能力 变频 代表 标识 正在 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 蓝思科技飞鸽互联网 互联网电商科技 工业互联网科技新基建 互联网科技未来 互联网科技的发展 北京互联网科技公司 科技创新互联网企业 互联网科技美容 湖南洣水互联网科技有限公司扣款 互联网之后的科技是什么 须眉科技是互联网公司吗 移动互联网年度科技创新 东莞新华互联网科技学校 爱医互联网络科技 互联网领先科技宣传片 西安有哪些互联网高科技企业 萌小萌互联网科技河南有限公司 上海万顺科技互联网有限公司招聘 优雇互联网科技有限公司 湖南永感互联网科技有限公司 远信互联网科技 互联网金融科技委员会 互联网科技股午盘股票涨跌 烟台灵鸽互联网科技有限公司 山东星卡互联网科技有限公司官网 山东大美朱楼互联网科技有限公司 易企秀互联网科技是做什么的 江苏互联网智能科技产品出厂价 广西科技产业互联网是什么
0