我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java接口指的是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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.一个类实现这个接口必须实现这个接口中定义的所有的抽象方法。

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

java接口指的是什么

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

java接口指的是什么

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

java接口指的是什么

    写一个测试类,用来测试一下我们刚才实现的这个接口,因为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();    }} 
结果如下:

java接口指的是什么

    感兴趣的同学可以去在线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();    }}                                                                                                                                     

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

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

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

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

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

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

接口的通俗理解

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

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

接口的标识用法

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

接口在生活中的思想体现

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

java接口指的是什么

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

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

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

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java接口指的是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java接口指的是什么

这篇文章主要介绍java接口指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!接口概念 官方解释:Java 接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法
2023-06-27

output接口指的是什么

小编给大家分享一下output接口指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!output接口是指输出接口,指切换器的输出接口方式,一般为BNC插头或
2023-06-14

spk接口指的是什么

本篇内容介绍了“spk接口指的是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!spk接口是外界喇叭的预留接口,是speaker的缩写;s
2023-07-02

audio指的是什么接口

小编给大家分享一下audio指的是什么接口,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!audio接口是音频插孔,即音频接口,可分为audio in接口和audio out接口。音频接口是连接麦克风和其他声源与计算机的设备
2023-06-08

rs-232c接口指的是什么

这篇文章给大家分享的是有关rs-232c接口指的是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。RS-232C 是数据交换的接口。RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是“数据终端
2023-06-20

php中接口指的是什么

这篇文章主要讲解了“php中接口指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中接口指的是什么”吧!在PHP中,接口interface是一个规定,定义了实现某种服务的一般规范
2023-06-29

Java接口是什么

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;
Java接口是什么
2015-03-07

dcsv接口指的是什么意思

小编给大家分享一下dcsv接口指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!dcsv接口是供电不足以满足电器需求时支援供电的接口;dc是直流供电的意
2023-06-29

在java中的接口是什么

在Java中接口是一种抽象的数据类型,它允许定义一组方法的签名,但不提供实现细节,接口在Java中起到了多个类之间的桥梁和契约的作用,类可以实现一个或多个接口,通过实现接口中定义的方法来满足接口的规范。本教程操作系统:Windows 10系
2023-08-10

line out接口指的是什么意思

这篇文章主要介绍了line out接口指的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。line out接口将声卡处理后的模拟信号通过Line Out接口输出到音箱
2023-06-14

java接口作用是什么

接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。 (推荐学习:jav
java接口作用是什么
2019-05-13

java中什么是Consumer接口

java中什么是Consumer接口?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Androi
2023-06-14

java comparable接口的作用是什么

Java的Comparable接口是一个泛型接口,用于对实现它的类的对象进行排序。它定义了一个compareTo()方法,该方法用于比较对象的顺序。具体来说,Comparable接口的作用如下:1. 对象排序:通过实现Comparable接
2023-09-20

Java List 接口的作用是什么

本篇内容主要讲解“Java List 接口的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java List 接口的作用是什么”吧!目录源码展示源码展示package java.uti
2023-06-20

java serializable接口的作用是什么

Java中的Serializable接口是一个标记性接口,它没有任何方法,仅用于标识一个类的实例可以被序列化和反序列化。Serializable接口的作用是允许将对象的状态以字节流的形式转换为持久化存储或网络传输,并在需要时重新创建相同的
2023-10-25

java中l什么是ock接口

这篇文章给大家介绍java中l什么是ock接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。1.说明在
2023-06-14

java中serializable接口的作用是什么

在Java中,Serializable接口的作用是允许一个类的对象可以被序列化和反序列化。当一个类实现了Serializable接口,它的对象可以被转换为可以存储或传输的字节流。这使得对象可以在网络上进行传输、在文件中存储,或者在不同的应用
2023-08-18

java中Callable接口的作用是什么

java中Callable接口的作用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象
2023-06-14

java中Runnable接口的作用是什么

本篇文章给大家分享的是有关java中Runnable接口的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用
2023-06-14

java 接口和类的区别是什么?

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复
java 接口和类的区别是什么?
2019-01-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录