Java中接口作用的理解

Java接口的详解 一、前言 前面我们说了抽象类的概述,我们对抽象类也有个认识理解了,现在我们学习 十分重要的内容接口接口这个词比较的抽象,但其实也是十分好理解的。 二、接口 简单的说,接口就是一种被规范的标准,只要符合这个标准都可以通用,接口的表现 在于对行为的抽象。 ... 阅读详情

关于Java中接口作用的深入理解。这是个很容易遇到的问题吧,看下面红色的部分应该就能理解了。要把接口视作一种共同规范。


/ 2019/3/1 补充 : 接口的存在也是为了弥补类无法多继承的缺点,假设一个情况,父类--Animal  子类--Dog、Cat 、People、Sheep、Tiger、Lion。假设在 Animal 中都存在 eat()这个公有的方法。但是  Tiger 和  Lion 、People 还拥有  Hunt  的方法,但是hunt 不存在在 Dog / Cat中,所以需要对  Tiger Lion  People 上面新建一个 接口。用于特定标识他们公有的。

------- 其实上面的情况还有种方法解决 : 即在 父类下面再写一个三者的父类,加入新的动作,但是,这样五者不是在同一级上面的了,代码结构混乱,所以引入了接口。而在面向对象的Python语言中是允许多继承的。   总之,引入抽象类和接口是为了是代码逻辑更加清晰,建议去看一些简单的jdk源码,然后根据源码自己画一个类的UML图,理解一下平时所有的集合框架List Set这些的整体结构。


2019/3/22 补充 : 接口在扩展性方面的体现 : 类 B  调用了  接口 A里面的一个方法,但是这个方法在当前提供的 jar 里面并没有接口的实现类 , 而接口的实现类需要通过外部的添加才可以。 那么我只需要通过反射的方式加载外部特定的 jar 包,即可实现不同的方法。就是类似于  A 的接口方法并没有具体实现,而我调用A中某个方法,最终调用的 看我外部加载的什么样子的实现类 。 充分体现了 解耦的特性 。 这里的一个很明显的体现就是  使用  JDBC 的时候,需要从外部加载驱动 。。。Class.forName("com.mysql.jdbc.Driver"); ,但是我也可以加载其他的驱动,比如 SSH 框架里面的。体现了一种拔插的思维。


2019/4/26 补充: 今天在看 JDBC 源码的时候,发现第一句 的 class.forName(),做了很多的事情, 在jdk 中,只有  Driver 的一个接口,但是  mysql-connector-java.jar 这种类似的 jar 需要第三方去实现,  具体的Driver 实现类是在第三方的jar里面的,比如肯定还有 oracle的connector的jar。  这样就充分体现了扩展性,我在 class.forName 里面,指定加载 第三方的 Driver,那么在类加载的时候,可以完成 jdk 中 Driver 接口, 在 第三方jar 中具体实现的class,但是 我们知道就算知道接口也不行,因为在 jdk 中只有一个接口, 所以在 第三方 的jar里面,存在一个 配置文件,指向了在 第三方 jar 中具体实现了 jdk 中 sql 包下的 Driver 接口的 类,这样就可以通过反射的方式,获取到 第三方中具体实现类。   是不是 接口的 扩展性 非常的明显。  我只需要写接口,具体实现交给其他人去做,然后我使用的时候,只需要显示的加载某一个特定类,就可以获取到接口的实现类了。


1、首先是关于接口的疑问:

为什么要使用接口?接口的作用是什么?为什么不直接在实例类中进行方法实现,而是需要首先进行接口的定义?是不是多此一举了?

2、其次是关于接口的使用规范:

1、接口中可以定义常量,不能定义变量,如果你在接口中定义属性,那么通过反编译可以看见他会自动用public static final 修饰,接口中的属性都是全局静态常量,接口中的常量必须在定义时指定初始值。

2、 接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。

3、 接口不能实例化,接口中不能有构造。

4、 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。

5、 接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。

3、然后我们回答一下开始提出的问题:

2    接口的作用是什么?

笔者认为接口是一种协议。例如两个开发者,开发时间完全不一致,那么需要两个人的配合开发,则需要一个人讲接口写好,定义好其中所有的变量命名规范、函数定义规范。具体实现类的开发人员则只需要按照接口实现相应功能即可。

 

3、 为什么不在一个类是直接实现相应的方法,而是需要先进行接口抽象?

①首先是关于全局变量的定义,目的已经很清楚了。

②其次是说明一下接口的真正作用是建立在很多的对象类、并且类同时拥有很多的方法(需要实现的功能)。这种情景下,使用接口可以非常明显的感觉到接口的作用。

推荐的 关于 接口的文章: Java 接口(interface)的用途和好处_nvd11的专栏-CSDN博客_java接口的作用和意义

Java接口详解【一篇搞定】 接口是对Java单继承的补充。Java只支持单继承(亲爹唯一),如果在开发过程中想额外增强类的功能,可以借助接口实现(可以拜师,拜多个师傅也可以)。 阅读详情

相关推荐

简单说说Python中的pip如何换源

【安装包】:pip install 【升级包】:pip install --upgrade 【卸载包】:pip uninstall 【查看已安装的包】:pip list【搜索包】:pip search (注意:pip search功能在pip 10.0.0之后被弃用,建议使用其他方式搜索包,如访问PyPI官网或使用其他搜索引擎)

一捌柒的博客 2643

Java基础知识 19】Java接口作用意义

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

学Java,找哪吒 2万+

PTGui使用教程

PTGui使用教程为啥使用ptgui开始使用ptgui 为啥使用ptgui ptgui是一个全景拼接软件,在海思hi3559上做视频拼接的时候,需要拼接参数,这是就需要使用到ptgui,这里可以在该网站下下载ptgui:下载地址 开始使用ptgui 第一步,加载图片,我这里添加了三幅图 然后添加控制点(可以先多对准几次图像,这样会自动生成一些控制点,但是不保证准确),建议控制点不要太密集 点开镜头设置,勾选以下几个选项以及配置好镜头类型,如下图 点开优化器,在高级界面中配置如下参数,最后点

what_wrong的博客 1万+

Java接口作用意义是什么?

接口的定义   接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。   人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。   在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。    接口的优势 一、规范性

java小白的博客 2万+

java接口作用意义_Java接口作用意义

接口1.接口的特点首先看下面的这个抽象类代码:抽象类代码中变量全为常量,方法全是抽象方法,这样的形式,我们可以将它们定义为接口类,书写方式如下:接口的语法为:interface接口名{常量或方法}接口特点:所有的属性都是公开静态常量所有的方法都是公开抽象方法没有构造方法,类中即使不写也有构造方法,但是接口不能创建对象,所以没有构造方法接口只能声明引用基于接口特点,在定义接口时实际上需要在定义常量时...

weixin_33301547的博客 4015

Java接口作用深入理解

关于Java接口作用的深入理解。这是个很容易遇到的问题吧。 / 2019/3/1 补充 : 接口的存在也是为了弥补类无法多继承的缺点,假设一个情况,父类--Animal 子类--Dog、Cat 、People、Sheep、Tiger、Lion。假设在 Animal 中都存在 eat()这个公有的方法。但是 Tiger Lion 、People 还拥有 Hunt 的方法,但是hun...

liyongshun82的博客 276

java接口深入理解,深入理解Java接口作用

文章导读【在定义类、接口时,都需要指定访问修饰符,以此来限定类及接口的可访问范围。本文给出了类及接口主要修饰符的名称及限定作用,同时也给出了Java接口的定义与实现。】本文分成二个小节用来理解Java接口作用。第一小节介绍Java类及接口的修饰符,在讨论接口时会用到;第二小节以PCI插槽接口的实现为案例,加深理解Java接口作用。第一小节 认识Java类及接口的修饰符1、访问修饰符在定义类、...

weixin_36081109的博客 283

Java接口理解接口作用及其用法

在编写Java程序的时候,我们需要定义很多类方法,这些类方法有时需要其他程序进行交互,而接口就是用于定义这些交互方式的一种编程规范。接口简单来说就是一组方法的声明,这些方法没有方法体,所有实现这个接口的类都必须要实现这些方法。接口不关心具体实现细节,只关心类的行为是否符合约定。因此,接口可以作为一个标准,定义了类应该遵循的规则约定。void eat();// 吃 void sleep();// 睡觉 void run();// 跑 }

小虎哥的技术博客 3791

Java接口作用深度理解

原文:https://blog.csdn.net/whandwho/article/details/80247521 关于Java接口作用的深入理解。这是个很容易遇到的问题吧。 一、 接口的存在也是为了弥补类无法多继承的缺点 假设一个情况,父类–Animal 子类–Dog、Cat 、People、Sheep、Tiger、Lion。假设在 Animal 中都存在 eat()这个公有的方法。但是 ...

记录个人日常所学所思 649

暴力理解java接口作用

接口的翻译太二逼了 其实就是协议。。。 协议双方根据协议内容工作 我有一个方法,需要一个参数,这个参数是某个类的对象,我们要调用这个参数的fuck方法让他干起来。 void ml(Animal a) { a.fuckMe(); } 如果这个动物对象a,没有fuckME函数,会发生什么。。。。。。程序根本通不过编译。 所以此时需要一个接口 interface Fuckable{

weixin_41871775的博客 557

java接口interface理解接口作用

java 接口interface 1. 固定统一调用的方法(想想适配器模式)public void somefunc(HttpServletRequest resq){ //调用时传来实现该接口的类就行 //里面直接调用接口方法2. 标记作用,作为一个类的标记, 里面空方法(Cloneable,Serializable)1)没有继承Cloneable,直接调用obj.clone()抛异常

老专家的博客 1万+

JAVA集合工具包框架理解接口,抽象类类的作用

Java集合工具包框架 参考网址:http://www.cnblogs.com/skywang12345/p/3308498.html 认真研究这个图,我们可以得到接口,抽象类,类扮演的角色作用,以及可以很清晰地看出为什么要使用这些概念。 (虚线框代表interface,蓝色实线框代表abstract class,黑色实线框代表class。实线代表继承extends,虚线代表实现implemen...

greatlwd的博客 336

Java接口机制的理解作用

初学java可能大部分人都理解不了interface这个机制,其实这很正常,我觉得要深刻理解interface需要我们有一定的Java开发经验,尤其到了使用设计模式那一程度,才能够深刻理解interface机制的用处。 有人对interface机制做过一个比喻:接口就是个招牌。 比如说你今年放假出去杭州旅游,玩了一上午,你也有点饿了,突然看到前面有个店子,上面挂着KFC,然后你...

houwenbozhangpeiyao的博客 642

编程自学指南:java程序设计开发,Java 接口详解,理解 Java 接口的概念、作用特点,掌握接口的定义实现方式,接口的定义语法规则

编程自学指南:java程序设计开发,Java 接口详解,理解 Java 接口的概念、作用特点,掌握接口的定义实现方式,接口的定义语法规则

zl515035644的博客 924

【六袆 - JavaJava 中的接口有什么作用?初学者理解通透接口作用

初学者容易理解Java中的接口是什么?接口有什么作用

六祎的博客 151

对于java接口作用理解

1,接口可以多继承。 2,接口可以添加公共的属性。 3,impl 方法被隐藏,让调用者清晰的看到方法参数。 4,一个接口可以,可以多个实现。 exp:List list1 = new ArrayList();    List list2 = new LinkList(); (ArrayList 与 LinkList 都实现了 List接口)。 在实际应用中给我们带来...

weixin_30783913的博客 77

个人理解emulateJSON作用java后台接口参数的关系

Vue请求: this.$http.post("/test", { 'name': '弟中弟', 'phone': '186220666666', 'age': 18 }).then((respones) => { console.log(respones.body) }); 复制代码在没有设置参数emulateJSON:true时 后台接口只能通过@Requ...

weixin_33965305的博客 2673

java通过给按钮添加监听器理解接口作用

按钮作为一个公共组件,每个按钮点击时的行为是不一样,可能是删除按钮,也可能是查询按钮,也可能是其他功能,对于这种不确定的功能,如何在设计按钮组件时来编写代码呢? public class Button {    public void click(){   有两种方式,第一种方式,把Button类设计成抽象类,click方法设计为抽象方法,由具体的子类来实现不同的click行为

旷野历程 5146

java接口抽象类的作用_深入理解Java接口抽象类

一.抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:public abstract void open();抽象方法必须使用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中无具体实现的方法,所以不能用抽象类创建对象。抽象类定义为“包含抽象...

weixin_42297705的博客 269

西电微机原理,含视频教程.zip

西电微机原理课设

上一篇: 利用多线程实现加法并行计算
下一篇: hashmap数据结构详解(一)之基础知识奠基
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值