`
simple_hui
  • 浏览: 156866 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

java 的接口到底起什么作用

阅读更多
我想,可能不止我一个人有这个疑问,所以,把它贴出来。

  下面是madai和clkrst给我的回答。

  在此谢谢两位。

  我的问题是:

  java 的接口到底起什么作用?

  1、从书中看到的是java程序的接口中只定义了常量及空方法,空的方法有什么用呢?还要在类中写方法体,那还要接口干什么?

  2、一个程序中写了2个接口,并在同一个类中写方法体,这与多继承有什么关系。

  3、包中那些已定义的接口,怎么知道那里面定义了什么方法。

  说到底,接口有什么实际意义,哪本书都不讲,一味的讲是多继承,不结合实际实在不好懂。


  Madai的理解是:
  java接口的用处主要体现在下面几个方面:

  (1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。

  (2)通过接口可以指明多个类需要实现的方法。

  (3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类。


  Clkrst给出了更详细的解释:
  类描述了一个实体,包括实体的状态,也包括实体可能发出的动作。

  接口定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。

  所以接口有点象一个规范、一个协议,是一个抽象的概念;而类则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。

  从程序角度,简单理解,接口就是函数声明,类就是函数实现。需要注意的是同一个声明可能有很多种实现。

  所以就你的问题:
  1、接口中定义类方法的原型,但是不能说是空方法,因为空方法的意思是有实现体,只不过实现体是空操作。实际上接口没有定义任何实现体。具体的实现体都是在实现接口的类中,接口只是定义了这些方法的调用方式。

  你当然也可以不用接口,直接在类里面写方法,但是如果你的一组方法需要在很多类里实现,那么把它们抽象出来,做成一个接口规范,不是更好么?

  2、一个类描述了一个实体,这个实体可能是一个复杂的对象,它的动作很多,如果把这些动作分类,用接口a定义其中的某一组动作,接口b定义其中的另外一组动作,这样的结构,比较清楚。

  这种方式具备了多继承的优点,避免了多继承的缺陷。实际上在历史上,接口在很大程度上,是为了解决多继承带来的种种问题而设计出来的。

  3、包中那些已定义的接口,怎么知道那里面定义了什么方法。

  接口里定义了方法的输入输出,这些都是协议,具体的实现都在每个类中。对于很多只需要抽象接口的地方,不需要知道具体的类是什么,只要这个类实现了这个接口就可以了。
1
 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/beiai1014/archive/2007/04/12/1561814.aspx


这个说的很详细,也很通俗
分享到:
评论

相关推荐

    java中接口的作用

    Java 中接口的作用 Java 中的接口是一种抽象的概念,它定义了一组方法的集合,但不提供实现。接口的主要作用是提供一种规范,以便实现类来实现这些方法。接口的作用主要体现在以下几个方面: 多重继承:Java 中的...

    Java接口.docx

    Java 接口是一种抽象类型,用于定义一组方法的规范和约束形式,它的主要作用是提高程序的复用性、可维护性和可扩展性。下面我们将详细讨论 Java 接口的定义、实现和使用。 一、定义 Java 接口 定义 Java 接口需要...

    Java中interface接口的作用

    下面将详细讲解Java接口的作用以及其在实际开发中的应用。 首先,接口作为契约,定义了类必须遵循的公共行为。通过实现一个或多个接口,一个类可以声明它支持哪些操作,而无需关心具体的实现细节。这种解耦使得代码...

    JAVA 接口用法 PPT

    Java接口是一种重要的编程概念,它是Java语言中定义多个类共享行为的一种方式。接口与抽象类相似,都用于定义类的公共属性,但是接口更偏向于一种“纯”抽象,它只包含方法签名(方法名、参数列表和返回类型),而不...

    Java 接口 内部类

    Java接口和内部类是Java语言中两种重要的抽象机制,它们在软件设计中起着关键作用。接口主要用于定义对象之间的交互规范,而内部类则提供了一种封装和隐藏类的机制,使得类的设计更加灵活。 首先,接口是一个合约,...

    java接口使用实例源码

    总结一下,Java接口在软件设计中起着至关重要的作用,它们定义了行为规范,促进代码的可扩展性和灵活性。通过研究提供的源码实例,开发者能够更好地掌握接口的使用,包括声明、实现、默认方法和静态方法等特性,从而...

    java包与接口实验报告

    #### 二、Java接口的作用及使用 - **接口的作用**:接口是一种抽象类型,它定义了一组方法签名但不提供具体的实现。通过实现接口,类可以声明自己支持某些行为,而具体实现则由实现该接口的类来完成。 - **接口的...

    java接口的不同使用

    本文将深入探讨Java接口的使用方法,帮助你理解其核心特性、作用以及如何在实际编程中灵活运用。 1. **接口的定义与特点** - 接口中所有的方法默认都是抽象的(abstract)和公开的(public),不需要声明这两个...

    使用java请求json接口数据

    这里我们将深入探讨如何使用Java来获取指定接口的JSON数据,并涉及`HttpServletRquest`类的重要作用。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,...

    java接口与实现接口的类实验报告.pdf

    1. Java接口的概念及其作用,包括接口中的常量定义和抽象方法。 2. 实现接口的类需要实现接口中所有的抽象方法。 3. `Comparator<T>`接口的使用,以及如何自定义比较规则。 4. `Arrays.sort()`方法的运用,结合...

    Java接口和内部类教程

    ### Java接口和内部类教程 #### 3.1 接口 ##### 3.1.1 接口概念的引入 在计算机编程中,接口扮演着至关重要的角色,尤其是在Java这样的面向对象编程语言中。接口可以被视为一种规范或合同,规定了类必须遵循的...

    java接口文档规范

    在软件开发过程中,接口文档起着至关重要的作用,它不仅帮助团队成员之间更好地沟通,还能够确保各个系统之间的交互顺畅无阻。本文档将详细介绍一个具体的Java接口示例,并对该接口的各项内容进行深入解析。 #### ...

    java实现读取证书访问https接口

    在Java编程环境中,访问HTTPS接口通常涉及到网络通信和安全性的处理。HTTPS协议是HTTP协议的安全版本,通过SSL/TLS协议提供了数据加密、服务器身份验证和消息完整性检查,以确保网络通信的安全。本教程将深入讲解...

    java接口与内部类

    ### Java接口与内部类知识点详解 #### 接口概述 - **接口定义**: 在Java中,接口(Interface)是一种抽象类型,它定义了一组方法签名(即方法的名称和参数列表),但没有具体实现(即没有方法体)。接口提供了一种...

    Java 语言程序设计:第5章接口多态.ppt

    Java 语言程序设计第 5 章接口多态 本章主要讲解 Java 语言程序设计中接口和多态的概念、语法和应用。接口是 Java 语言中的一种抽象机制,它提供了一种定义类之间的“协议”的方式,允许类之间实现多继承,同时免除...

    支付宝java确认接口

    首先,我们需要理解支付宝确认接口的基本作用。这个接口通常指的是商家在完成商品发货后,通过调用支付宝的API来通知支付宝交易状态已经发生改变,例如货物已发出。这一步骤对买家和卖家都至关重要,因为它确保了...

    网银在线支付接口代码包括(.net,java,asp接口等)

    4. **网银图片**:这些图片可能包括支付按钮、安全提示、LOGO等,它们在用户界面中起到引导用户进行支付操作、提升用户体验和建立信任感的作用。 5. **网银操作代码**:这部分代码具体实现了与银行系统的交互逻辑,...

    Java 接口和抽象类区别

    总结来说,Java接口和抽象类都是软件设计中的重要工具,它们在EJB等企业级应用中发挥着关键作用。理解它们的区别和用法,有助于编写更高效、可维护的代码,并且能更好地利用Java的面向对象特性。通过深入学习EJB的...

    Java语言的接口与抽象类

    4. 多继承:Java接口支持多继承,一个接口可以继承多个父接口,实现接口的组合和扩展。 5. 实现:实现接口的类必须实现接口中声明的所有方法,否则这个类也必须被声明为抽象类。 其次,抽象类(Abstract Class)是...

    Java课件-抽象和接口

    Java接口与多态的关系在于,接口是多态性的一个重要工具。当我们有一个接口类型的引用指向实现该接口的实例时,我们可以通过接口引用调用其所有实现的方法。这样,即使在运行时,我们也可以根据实际的对象类型动态地...

Global site tag (gtag.js) - Google Analytics