`
crazy_rabbit
  • 浏览: 34615 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Java语言中的接口

阅读更多


  前言

  一个类只有有一个直接的父类,但可以实现多个接口。采用这种方式,Java语言对多继承提供了有力的支持。

  1. 接口的概念和正确使用接口的语法

在Java语言中,接口有两种意思:

  • 一是指概念性的接口,即指系统对外提供的所有服务。类的所有能被外部使用者访问的方法构成了类的接口。
  • 二是指interface关键字定义的实实在在的接口,也称为接口类型。它用于明确地描述系统对外提供的所有服务,能够更加清晰地把系统的实现细节与接口分离。

接口对成员变量和方法做了许多限制,接口的特征归纳如下:


A.接口中的成员变量默认都是public、static、final类型的(就是公开的静态常量),必须被显示地初始化。


B.接口的方法默认的都是public、abstract类型的。


C.接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。如果在接口中定义实例变量非抽象的实例方法及静态方法,这样是非法的。


D.接口没有构造方法,不能被实例化。在接口中定义构造方法是非法的。


E.一个接口不能实现另一个接口,但它可以继承多个接口。例如接口C继承了接口B和接口A,那么接口C会继承接口A中的所有方法,接口C会继承接口B中的所有方法。


F.接口必须通过类来实现它的抽象方法。类实现接口的关键字是implements。


G.与子类继承抽象父类相似,当类实现了某个接口时,它必须实现接口中所有的抽象方法,否则这个类必须定义为抽象类。


H.不允许创建接口的实现,但允许定义接口类型的引用变量,该变量引用该变量引用实现了这个接口的类的实例。


I.一个类只能继承一个直接的父类,但能实现多个接口。


2.接口和抽象类的比较


接口和抽象类都位于继承树的上层,它们具有共同点:

  • 代表系统的抽象层
  • 都不能被实例化
  • 都能包含抽象方法。这些抽象方法用于描述系统能提供哪些服务,但不必提供具体的实现。


抽象类和接口主要有两大区别:


  • 在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,这能提高代码的可重用性,这是抽象类的优势所在;而接口中只能包含抽象方法。
  • 一个类只能继承一个直接的父类,这个父类有可能是抽象类;但一个类可以实现多个接口,这是接口的优势所在。

接口和抽象类的使用场合:


  • 用接口作为系统与外界(即令一个系统)交互的窗口。
  • 由于外界使用者依赖系统的接口,并且系统内部会实现接口,因此接口本身必须十分稳定,接口一旦制定,就不允许随意修改,否则会对外界使用者及系统内部都造成影响。
  • 用抽象类来定制系统中的扩展点。可以把抽象类看作是介于“抽象”和“实现”之间的半成品,抽象类力所能及的完成了部分实现,但还有一些功能有待于它的子类去实现。

3.与接口相关的设计模式:


  • 定制服务模式
  • 适配器模式
  • 默认适配器模式
  • 代理模式
  • 标识类型模式
  • 常量接口模式

0
0
分享到:
评论
1 楼 fisher126 2009-07-29  
引用
E.一个接口不能实现另一个接口,但它可以继承多个接口。例如接口C继承了接口B和接口A,那么接口C会继承接口A中的所有方法,接口C会继承接口B中的所有方法。

前一句错了,一个接口也只能继承一个接口,不能在一个类中实现多继承。

相关推荐

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

    接口中的方法必须是“抽象方法”,不能有方法体,允许省略 public 及 abstract 关键字。 5.1.1 接口的作用及语法——例 5_1 例如,保险公司的例子中,具有车辆保险、人员保险、公司保险等多种保险业务,在对外提供...

    JAVA语言中文教程

    《JAVA语言中文教程》是一份详尽的编程学习资料,主要介绍了JAVA语言的基础知识与面向对象的编程概念,适合初学者以及有一定编程基础的学习者深入理解JAVA语言的特性和编程技巧。 ### 第一章:JAVA概述 #### JAVA...

    电力系统负荷预测软件中R语言与Java的接口方法研究.pdf

    Java语言是一种面向对象的编程语言,它的主要特点之一是开发者可以使用自定义类型和关联操作设计软件。Java在许多项目中被广泛应用,尤其在企业级应用开发中,Java因其稳定性和跨平台性而成为主流的应用软件开发语言...

    java 接口练习作业

    实现接口意味着一个类承诺实现接口中所有的抽象方法。在类声明中,我们使用`implements`关键字来实现接口: ```java public class MyClass implements MyInterface { public void method1() { // 实现方法1 } ...

    java 接口 java 接口java 接口

    Java接口在Java编程语言中扮演着至关重要的角色,它是实现多态性和抽象化的关键机制。接口定义了一组方法签名,但不提供具体实现,这使得类可以实现多个接口,从而表现出多种行为。以下是对Java接口的详细解释: 一...

    java语言程序设计课后习题答案.pdf

    * 变量声明和赋值:在Java语言中,变量声明时需要指定变量的数据类型,而赋值是将值赋给变量的过程。 * 数据类型:Java语言支持八种基本数据类型,包括整型、浮点型、字符型、布尔型、数组型等。 * 运算符:Java语言...

    C#调用Java接口演示

    本示例主要探讨的是如何使用C#调用Java接口,实现不同编程语言之间的交互。C#和Java都是广泛应用的编程语言,它们各自拥有丰富的库和生态系统,但有时需要在两者之间建立桥梁,以利用各自的优点。本文将详细介绍这一...

    《面向对象程序设计JAVA语言程序设计》

    《面向对象程序设计JAVA语言程序设计》 以下是从给定的文件信息中生成的相关知识点: 1. Java 语言程序设计的基础知识点: * 面向对象程序设计的概念和特点 * Java 语言的特点和优势 * Java 语言的基本结构和组成...

    JDBC_Java语言与数据库互联的接口

    ### JDBC:Java语言与数据库互联的接口 #### 一、Java语言的特点 Java语言自1995年由Sun Microsystems公司正式发布以来,迅速成为互联网上最受欢迎的编程语言之一。Java语言具备众多优势: - **简单易学**:设计...

    Java语言SQL编程接口part1

    Java语言SQL编程接口

    Java语言SQL接口 JDBC编程技术

    JDBC(Java DataBase Connectivity)是Java语言与数据库互联的接口。通过JDBC可以使用Java应用程序或Java applet访问网络上的各种数据库。本书首先介绍了JDBC的概念、结构和特点。然后逐步讲解了如何编写JDBC程序。...

    java 微信退款接口

    在微信退款接口中,商户需要从微信商户平台的“账户设置”-“API安全”部分下载这个证书,它是商户与微信服务器通信的安全凭据。证书包含了商户的私钥,用于对请求进行签名,确保数据的完整性和来源的真实性。在Java...

    Matlab与java接口(图文并茂)

    b) 自动转换:Java语言的内置类型,如Double,可以直接用于数据存储,Java程序可直接读取和操作。 通过以上步骤,我们能够成功地在Java程序中调用由Matlab生成的Java组件,实现两者的深度集成。这种接口技术为科研...

    java开发接口帮助文档

    Java API(Application Programming Interface)是Java语言的核心组成部分,它定义了Java标准类库中各种类和接口的集合。这些类库涵盖了输入输出、网络通信、数据处理、图形用户界面等多个领域,为开发者提供了丰富...

    Java语言程序设计(第二版)\第06章 包、接口和异常.ppt

    Java语言程序设计(第二版)第06章 包、接口和异常 本章主要介绍Java中包、接口和异常处理的...本章对Java语言程序设计中包、接口和异常处理的使用方法进行了详细的介绍,为大家提供了一个全面的了解Java语言的机会。

    Java spring boot 接口工程

    【Java Spring Boot 接口工程】是现代Web开发中一种高效、便捷的框架组合,它将Java的强大功能与Spring Boot的简洁性融为一体,为开发者提供了快速构建可部署的服务的能力。这个工程的核心在于利用Spring Boot的自动...

    java语言sql接口 jdbcprogram.rar

    java语言sql接口 jdbcprogram.rar

    java语言整合API接口自动化测试框架

    接口测试框架 https://blog.csdn.net/qq_15283475/article/details/106494544 com.bjci.api #包名 ApiInfoModel.java ## Api类 ExcelUtills.java ##操作excel的类 HandlsUtils.java ##根据judge分发不同的...

    Java中抽象类和接口的区别

    在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...

    Java语言SQL接口—JDBC编程技术

    Java语言SQL接口 JDBC编程技术

Global site tag (gtag.js) - Google Analytics