java接口的意义

java当中继承一个接口,要重写他的方法的话,那为什么还要多此一举的去实现一个接口呢?

直接把方法写在类当中不就可以了?
就是说去掉类名后面的Implements 接口 ,可以不可以呢?

接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。就像你问的,都有个method1的方法,如果我用接口,我上面就可以one.method1();是吧?那样我new a();就是用a的方法,new b()就是用b的方法
这样不方便吗?
这个就叫统一访问,因为你实现这个接口的类的方法名相同,但是实现内容不同。
另外java用接口还有一个好处,就是java不支持多重继承,但是可以实现多个接口,这个在某种程度上可以看做进行多重继承的一种办法。

首先这样写是肯定没有错误的,在我们初期学期的时候还没有体现到接口的价值。但是当我们在做项目时,运用接口以后会很方便。因为接口里面只有简单的方法的声明。或者一些公用的东西。大家都去实现它的话比每次重新定义要方便很多。
对于接口的作用,在一些小的项目上,很难看出其发挥的优势。这就使一些经常的做小项目的开发人员,做时间久了就感觉不到它有什么好的,有时候写起来还麻烦,干脆不用了。其实,在一些大项目上,接口的作用是发挥地相当的明显的。

比如:如果你开发业务逻辑代码,当你好不容易的实现了它全部的功能,突然用户需求要改,你在修改你代码的同时,调用你代码的其它人也会改,如果代码关联性
强的话,会有很多人都要改动代码,这样一来二去,程序会变得相当的不稳定,而且可能还会出现更多的新Bug,所有人都可能会陷入混乱。

但如果使用接口的话,在你使用它之前,就要想好它要实现的全部功能(接口实际上就是将功能的封装)。确定下这个接口后,如果用户需求变了,你只要重新写它
的实现类,而其它人只会调用你的接口,他不管你是怎么实现的,它只需要接口提供的功能。这样,很可能只需要把你的代码修改就可以了,其他人什么都不用做。
同时:这样做的话,使得开发人员能够分工明确,只要确定下来接口了,就可以同时进行开发,提高开发效率。另外,使用接口还有使用方便,可读性强,结构清晰
等优点。

定义一个接口,可以有多种实现。变量声明为接口变量,调用接口方法,以后切换实现类的时候,原有代码不用修改。

解耦,可扩展这是设计接口的主要原因之一

为什么接口可以多继承,而类不可以?

如果有两个父类,两个父类里有一个相同的方法,那么作为子类应该怎么继承这个方法?父类1的还是父类2的?
但是实现多个接口则没问题,因为不管哪个接口,调用的都是同一个实现,因为只有方法名!
而且单继承的目的之一,就是降低复杂度,减少维护难度

继承:描述事物的自然属性和行为的复用。
接口:描述事物的社会属性和行为的复用。

因为继承父类包括实现,继承接口只包括接口,就是这样。
接口定义的是行为,比如走,很多对象都可以实现这个行为
但类定义的是对象的属性和具体行为

class 负责实现, interface负责接口;多继承最麻烦的问题就是冲突, 冲突主要体现在 实现的时序和传入参数, 传出参数这几个方面对于实现来说,父类发生时序问题时,使得语言本身变得无比复杂,而多继承问题在实现本身是可以通过很多方式解决的, 而对于接口来说,传入参数冲突是overload,则不是问题, 只有传出参数这个问题是接口多继承不允许的例如:

public interface IA {
void doSomething();
}
public interface IB {
Integer doSomething();
}
public interface IAB extends IA, IB {

@Override
public void doSomething();

@Override
public Integer doSomething();
}

这种情况编译器会告诉你, IA, IB 接口冲突,是不允许的

时间: 2024-10-10 05:36:38

java接口的意义的相关文章

java 接口的作用和好处

1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意义很疑惑.不知道接口到底是有什么作用,为什么要定义接口. 好像定义接口是提前做了个多余的工作.下面我给大家总结了4点关于JAVA中接口存在的意义: 1.重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Jav

Java接口技术

1.RMI技术 1.1 RMI技术介绍 RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体现在它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方案之一.其实它可以被看作是RPC的Java版本.但是传统RPC并不能很好地应用于分布式对象系统.而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用. RMI目前使用Java远程消息交换协议JRMP

hadoop2.5.2学习及实践笔记(六)—— Hadoop文件系统及其java接口

文件系统概述 org.apache.hadoop.fs.FileSystem是hadoop的抽象文件系统,为不同的数据访问提供了统一的接口,并提供了大量具体文件系统的实现,满足hadoop上各种数据访问需求,如以下几个具体实现(原表格见<hadoop权威指南>): 文件系统 URI方案 Java实现 (org.apache.hadoop) 定义 Local file fs.LocalFileSystem 支持有客户端校验和本地文件系统.带有校验和的本地系统文件在fs.RawLocalFileS

java接口的作用是什么?

我想,可能不止我一个人有这个疑问,所以,把它贴出来. 下面是madai和clkrst给我的回答. 在此谢谢两位. 我的问题是: java 的接口到底起什么作用? 1.从书中看到的是java程序的接口中只定义了常量及空方法,空的方法有什么用呢?还要在类中写方法体,那还要接口干什么? 2.一个程序中写了2个接口,并在同一个类中写方法体,这与多继承有什么关系. 3.包中那些已定义的接口,怎么知道那里面定义了什么方法. 说到底,接口有什么实际意义,哪本书都不讲,一味的讲是多继承,不结合实际实在不好懂.

java接口概述

接口: 是一些方法特征的集合,而这些方法可以被多个实现类去各自实现. 接口主要特征: 1.接口中的成员变量隐士的被定义为公开的静态常量 2.接口中的方法是抽象的,并且必须是公开的 3.接口是用来被类实现的或者被接口继承的,其不能有自己的构造子 接口的作用: 接口是实现松耦合的重要手段,它描述了系统对外公开的所有服务.通俗的理解,接口的作用就是把使用接口的人和提供接口的 人隔离开来,让真正的接口放在他们中间,实现接口的人不需要去关心谁使用这个接口,使用接口的人也不需要关心这个接口是 谁实现的.就好

java接口的作用是什么?&lt;转&gt;

< 下面是madai和clkrst的回答. 我的问题是: java 的接口到底起什么作用? 1.从书中看到的是java程序的接口中只定义了常量及空方法,空的方法有什么用呢?还要在类中写方法体,那还要接口干什么? 2.一个程序中写了2个接口,并在同一个类中写方法体,这与多继承有什么关系. 3.包中那些已定义的接口,怎么知道那里面定义了什么方法. 说到底,接口有什么实际意义,哪本书都不讲,一味的讲是多继承,不结合实际实在不好懂. Madai的理解是: java接口的用处主要体现在下面几个方面: (1

java接口回调的经典使用案例

java接口回调的经典使用案例 内容简介: 接口回调的理解及需要关注的问题 接口回调一般常规用法 接口回调简洁用法 接口回调的意义 接口回调简介: 简单的说接口回调就是:调用者A类访问了被调用者B类中的M方法.这个M方法在执行完毕后又调用了A类中的方法. 问题? B类中的M方法是如何访问A类中的方法的呢?弄清了这个问题,也就明白了接口回调. 下面我们根据一个场景描述去编写代码: 我们在调用者Caller类中使用被调用者Collee类中的下载文件方法DownLoadFile().下载完成后要通知C

Java 接口和抽象类区别

1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了.当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用 .面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用. 说到了抽象,我就不能不提到曾让我头痛的Java接口和Java抽象类了,这也是本文我想说的重点. 既然面向对象设计的重点在于

java接口调用——webservice就是一个RPC而已

很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过socket实现rpc,以及服务的注册和动态上下线.这里先上一篇RPC的实现者一webservice,便于后面理解源码执行过程,框架就是在原理的基础上提供更加便捷的使用而已,协议就是基于TCP或UDP之上,服务者和调用者之间约定消息按照什么样的格式发送以及解析罢了.协议没什么高深莫测的. 原文和作者