java中接口的作用是什么?

转载 2015年11月19日 11:47:44
我想,可能不止我一个人有这个疑问,所以,把它贴出来。
 
  下面是madai和clkrst给我的回答。
 
  在此谢谢两位。
 
  我的问题是:
 
  java 的接口到底起什么作用
 
  1、从书中看到的是java程序的接口中只定义了常量及空方法,空的方法有什么用呢?还要在类中写方法体,那还要接口干什么?
 
  2、一个程序中写了2个接口,并在同一个类中写方法体,这与多继承有什么关系。
 
  3、包中那些已定义的接口,怎么知道那里面定义了什么方法。
 
  说到底,接口有什么实际意义,哪本书都不讲,一味的讲是多继承,不结合实际实在不好懂。
 
 
  Madai的理解是
  java接口的用处主要体现在下面几个方面:
 
  (1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
 
  (2)通过接口可以指明多个类需要实现的方法。
 
  (3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
 
 
  Clkrst给出了更详细的解释:
  类描述了一个实体,包括实体的状态,也包括实体可能发出的动作。
 
  接口定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。
 
  所以接口有点象一个规范、一个协议,是一个抽象的概念;而类则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。
 
  从程序角度,简单理解,接口就是函数声明,类就是函数实现。需要注意的是同一个声明可能有很多种实现。
 
  所以就你的问题:
  1、接口中定义类方法的原型,但是不能说是空方法,因为空方法的意思是有实现体,只不过实现体是空操作。实际上接口没有定义任何实现体。具体的实现体都是在实现接口的类中,接口只是定义了这些方法的调用方式。
 
  你当然也可以不用接口,直接在类里面写方法,但是如果你的一组方法需要在很多类里实现,那么把它们抽象出来,做成一个接口规范,不是更好么?
 
  2、一个类描述了一个实体,这个实体可能是一个复杂的对象,它的动作很多,如果把这些动作分类,用接口a定义其中的某一组动作,接口b定义其中的另外一组动作,这样的结构,比较清楚。
 
  这种方式具备了多继承的优点,避免了多继承的缺陷。实际上在历史上,接口在很大程度上,是为了解决多继承带来的种种问题而设计出来的。
 
  3、包中那些已定义的接口,怎么知道那里面定义了什么方法。
 
  接口里定义了方法的输入输出,这些都是协议,具体的实现都在每个类中。对于很多只需要抽象接口的地方,不需要知道具体的类是什么,只要这个类实现了这个接口就可以了。

相关文章推荐

Java里的接口的interface 简单介绍.

这是写给我自己和我这种初学者看的. Java作为1个强面向对象语言,  基本上所有东西(成员和方法)都是写在class(类)里面的. 但是也存在一种与class平行的东西, 它就是interfac...
  • nvd11
  • nvd11
  • 2014-02-07 20:11
  • 4912

Java 接口(interface)的用途和好处

首先不懂什么是interface的可以参考这里 http://blog.csdn.net/nvd11/article/details/18888415 不过上面的bo
  • nvd11
  • nvd11
  • 2014-11-16 23:51
  • 11426

JAVA接口的作用

今天和同事好好的讨论了下接口的原理和作用,发现原来自己的对接口的理解仅仅是局限在概念的高度抽象上,觉得好像理解了但是不会变化应用其实和没有理解差不多。以前看一个帖子说学习一个东西不管什么时候都要带着“...

弃掉Android 4.4获取系统图片出错之坑,实现 自定义相册库

弃掉Android 4.4获取系统图片出错之坑,抛掉Android自带的系统相册,实现Android自定义相册库

什么是java 接口,用处是什么

关于学习到java ,很多人可能接触到接口,但并不理解接口的用处,其实接口很简单,其作用有两个 1 泛化      下面请看代码   public void  feed(Chicken chike...

Java接口存在的意义

因为学习Android,所以重新看了Java中关于继承与接口,以及向上转型和向下转型的内容。 若有所悟,理解了接口存在的意义,如果有问题还请各位前辈指出。 接口会出现,最关键的原因应该是Java中...

Java内部类简介.

一, 什么是内部类 Java中所谓内部类
  • nvd11
  • nvd11
  • 2014-11-26 21:37
  • 502

澄清Java语言接口与继承的本质

计算机学院研二的兄弟与我讨论Java,一见面,几个问题全是关于接口,接口有什么用?为什么要用接口?什么时候该使用接口?很庆幸他们不是问我Java如何连接SQL Server,或者是如何开发J2EE应用...

面向接口编程详解(一)

我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)