接口是实现构件可插入性的关键,可插入构件的关键在于存在一个公用的接口,以及每个构件实现了这个接口。
什么是接口?
Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
接口的两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。
Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。
Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public,静态的和final属性。
接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。
为什么使用接口?
两个类中的两个类似的功能,调用他们的类动态的决定一种实现,那他们提供一个抽象父类,子类分别实现父类所定义的方法。
问题的出现:Java是一种单继承的语言,一般情况下,哪个具体类可能已经有了一个超类,解决是给它的父类加父类,或者给它父类的父类加父类,只到移动到类等级结构的最顶端。这样一来,对一个具体类的可插入性的设计,就变成了对整个等级结构中所有类的修改。
接口是可插入性的保证。
在一个等级结构中的任何一个类都可以实现一个接口,这个接口会影响到此类的所有子类,但不会影响到此类的任何超类。此类将不得不实现这个接口所规定的方法,而其子类可以从此类自动继承这些方法,当然也可以选择置换掉所有的这些方法,或者其中的某一些方法,这时候,这些子类具有了可插入性(并且可以用这个接口类型装载,传递实现了他的所有子类)。
我们关心的不是那一个具体的类,而是这个类是否实现了我们需要的接口。
接口提供了关联以及方法调用上的可插入性,软件系统的规模越大,生命周期越长,接口使得软件系统的灵活性和可扩展性,可插入性方面得到保证。
类型
使用Java接口将软件单位与内部和外部耦合起来。使用Java接口不是具体的类进行变量的类型声明,方法的返还类型声明,参量的类型声明,以及数据类型的转换。
在理想的情况下,一个具体的Java类应当只实现Java接口和抽象Java类中声明的方法,而不应当给多余方法。
类型等级结构
Java接口(以及抽象类)一般用来作为一个类型的等级结构的起点。
如果一个类已经有了一个主要的超类型,那么通过实现一个接口,这个类可以拥有另一个次要的超类型,这种次要的超类型叫做混合类型。
Java接口常用方法
单方法接口
public inte***ce Actionlistener(){
public abstract void actionPerformed(ActionEvent event);
}
仅且只有一个方法,只有实现了这个接口(重写这个接口中的唯一一个方法),你才有资格去事件监听器列表里注册(参数为Actionlistener类型),当事件源变动时,自动调用这个唯一的actionPerformed方法。
标识接口
是没有任何方法和属性的接口。标识接口不对实现它的类有任何语意上的要求,它仅仅表明了实现它的类属于一个特定的类型(传递)。
不推荐过多的使用标识接口。
常量接口
用Java接口来声明一些常量,然后由实现这个接口的类使用这些常量(以前在做画板的时候这么干过)。建议不要模仿这种常量接口的做法。
分享到:
相关推荐
12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类.zip12.javaMap 接口及其实现类....
11.javaQueue 接口及其实现类.zip11.javaQueue 接口及其实现类.zip11.javaQueue 接口及其实现类.zip11.javaQueue 接口及其实现类.zip11.javaQueue 接口及其实现类.zip11.javaQueue 接口及其实现类.zip11.javaQueue ...
9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类.zip9.javaList 接口及其实现类....
10.javaSet 接口及其实现类.zip10.javaSet 接口及其实现类.zip10.javaSet 接口及其实现类.zip10.javaSet 接口及其实现类.zip10.javaSet 接口及其实现类.zip10.javaSet 接口及其实现类.zip10.javaSet 接口及其实现类....
总之,Java开发接口帮助文档是开发者学习和工作的得力助手,它详细阐述了Java API的各个方面,包括类、接口及其相互关系。掌握并善用这份文档,能够提高开发效率,减少编程过程中的困惑,从而提升整个项目的质量和...
### JAVA接口的详细介绍 在Java编程语言中,接口(Interface)是实现抽象数据类型的一种方式,它完全由抽象方法组成,这些方法没有具体的实现。通过定义接口,开发者能够指定一个类应该具有的行为而不必关心如何...
1. Java接口的概念及其作用,包括接口中的常量定义和抽象方法。 2. 实现接口的类需要实现接口中所有的抽象方法。 3. `Comparator<T>`接口的使用,以及如何自定义比较规则。 4. `Arrays.sort()`方法的运用,结合...
下面将详细阐述Java接口的实例及其重要性。 1. **接口定义与实现** 在Java中,接口通过`interface`关键字来声明。例如,我们可以创建一个名为`Animal`的接口: ```java interface Animal { void eat(); void ...
"java接口 参数MD5加密.zip"这个压缩包提供了一套实现接口调用时参数MD5加密的解决方案。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为固定长度的摘要,常用于数据的完整...
多态则是指一个接口有多个实现,允许将不同的子类对象当作父类类型来处理。 Java语言的另一个显著特点是平台独立性。Java通过其虚拟机(JVM)的特性,使得Java编写的程序可以在安装了JVM的任何操作系统上运行,无需...
②掌握Java接口的声明、变量特点、实现过程和多继承机制;③利用接口提高代码复用性和扩展能力,实现多态。 阅读建议:本文提供了理论与实践相结合的内容,建议边阅读边动手编码练习,加深理解。特别关注接口的设计...
《JAVA中间件技术及其应用开发》是一门深入探讨Java中间件技术及其实现方法的课程。这门课程的课件涵盖了从基础理论到实践应用的多个方面,旨在帮助学习者全面理解并掌握Java在企业级服务中的核心角色。以下是根据...
Java 关键字是编程语言中预定义的具有特殊含义的标识符,它们是构建和管理程序结构的关键元素。本文将详细解析 Java 中的访问控制关键字,以及类、方法和变量修饰符。 首先,我们来看看访问控制关键字: 1. **...
本文将从理论与实践相结合的角度出发,对Java数据库编程及其应用进行详细的探讨和分析。 首先,我们需要了解Java数据库编程的基本概念。Java数据库编程指的是利用Java语言对数据库进行操作的一系列程序设计技术,它...
本文将深入探讨Java接口与抽象类的概念及其应用场景,并通过实例帮助读者理解它们各自的优势及适用场合。 #### 二、Java接口 Java接口是一种完全抽象的类,它只包含常量和抽象方法的声明,不允许有具体的实现代码...
接下来,我们将深入探讨Java接口的使用及其相关知识点。 1. **接口的声明** 接口使用`interface`关键字来声明,如: ```java interface InterfaceDemo { int CONSTANT = 100; // 常量 void method1(); // 抽象...
在接口自动化测试领域,Java、TestNG和数据库的结合是一个常用且强大的组合。这个压缩包“基于java+testng+数据库的接口自动化测试.zip”很可能包含了一套完整的接口自动化测试框架,用于验证后端服务的功能性和数据...
本文将深入探讨Java中的SQL接口及其核心组件——JDBC(Java Database Connectivity)编程技术。 首先,Java SQL接口包含了一系列的类和接口,它们定义了如何在Java程序中执行SQL语句、管理数据库连接以及处理查询...
Java基础知识汇总之集合框架List、Map、Set接口及其子类综合对比
本文档将详细介绍一个Java后端与前端交互的例子,包括请求和响应的具体格式、所需参数及其含义等。 #### 二、接口基本信息 **接口名称:** 未明确指定接口名称,在实际应用中,每个接口都应该有明确的名称以方便...