java接口
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 interface Actionlistener{
public abstract void actionPerformed(ActionEvent event);
}
仅且只有一个方法,只有实现了这个接口(重写这个接口中的唯一一个方法),你才有资格去事件监听器列表里注册(参数为Actionlistener类型),当事件源变动时,自动调用这个唯一的actionPerformed方法.
标识接口
是没有任何方法和属性的接口。标识接口不对实现它的类有任何语意上的要求,它仅仅表明了实现它的类属于一个特定的类型(传递)。
不推荐过多的使用标识接口。
常量接口
用Java接口来声明一些常量,然后由实现这个接口的类使用这些常量(以前在做画板的时候这么干过)。建议不要模仿这种常量接口的做法。
分享到:
相关推荐
在本项目"温故知新,通过学习尚学堂飞机游戏项目,理解Java...通过实际操作和分析这个游戏项目,学习者不仅能巩固Java基础知识,还能了解到游戏开发的一些通用技巧和实践经验。这是一个极好的学习资源,值得深入研究。
这篇博客"java基础知识30个经典问答"通过问答形式,详细解答了Java学习中常见的问题,帮助初学者巩固基础,同时也适合有经验的开发者温故知新。下面,我们将深入探讨这些问答中的关键知识点。 1. **什么是Java?** ...
【标题】"Java基础知识总结(超级经典)"是一个涵盖了Java编程语言核心概念的综合学习资源,旨在帮助初学者和有经验的开发者巩固与提升Java技术。这个资料可能包含了类与对象、封装、继承、多态、异常处理、集合框架、...
通过阅读《Java核心技术 卷1 基础知识》原书第10版,初学者可以系统地学习Java编程,而经验丰富的开发者也可以从中温故知新,加深对Java语言的理解。这本书的PDF电子书版本提供了高清的阅读体验,并带有索引书签目录...
在这个“java基础项目(35个java游戏)”中,我们可以深入理解Java的基础知识,并通过实际的游戏开发项目来提升编程技能。这个资料分享是针对那些想要在Java编程领域打下坚实基础的学习者,特别是对游戏开发感兴趣的...
【Java基础课程教学PPT】是一系列深入浅出讲解Java编程语言的教学材料,由一位深受学生喜爱的讲师精心编排。这些PPT涵盖了面向对象编程(OOP)的核心概念,旨在帮助初学者建立坚实的基础,同时也适合有经验的开发者...
接着是"02Javabase.pdf",这可能是关于Java基础的进一步深入,可能涵盖类、对象、封装、继承、多态等面向对象编程的基本概念,还有异常处理、接口、包的使用等。 "03Arrays.pdf"则专注于Java中的数组,包括一维和...
- 复习上一节所学的Java基础知识。 - 重点复习数据类型和运算符的使用方法。 **机器狂人:** - 使用IDEA或Eclipse等集成开发环境创建新的Java项目。 - 设置项目的基本配置,如编码格式、构建路径等。 **高手之路:...
在本资源"Java编程复习代码"中,作者...对于Java基础不牢固的学生,这是一个很好的温故知新的机会,可以帮助他们巩固理论知识,提升编程能力。同时,通过阅读作者的笔记,可以学习到编程思维和经验,有助于自我提升。
3. **基础知识**: 书中的“Back To Basics”意味着它会从编程的基本语法开始,如变量、数据类型、运算符、流程控制(条件语句、循环)、方法等,确保读者掌握编程的基础工具。 4. **类与对象**: Java中的所有事物都...
"JAVA经典100例"是一个专为初学者设计的教程,它涵盖了Java编程的基础到进阶知识,旨在帮助新手快速掌握Java编程技能。这个压缩包文件包含了100个精心挑选的Java代码实例,每一个例子都是一个独立的知识点,通过实践...
本课件集合旨在提供一个简单易懂的学习路径,适合初学者和有一定基础的开发者温故知新。 首先,Java的核心概念包括类、对象、封装、继承和多态。这些是理解Java编程的基础。类是对象的模板,它定义了一组特性和行为...
Java语言程序设计是编程学习的重要领域,特别是对于初学者来说,掌握Java的基础至关重要。Y. Daniel Liang编著的《Java...通过系统学习和实践,你将能够熟练掌握Java语言,为成为一名优秀的Java程序员打下坚实基础。
首先,"java经典小程序.doc"很可能是一个集合了多种Java编程示例的文档,这些示例可能涵盖了基础语法、面向对象编程、异常处理、集合框架、多线程、IO流、网络编程等多个方面。让我们逐一深入探讨这些知识点: 1. *...
这本书深入浅出地介绍了Java编程语言的基础知识,核心概念,以及在实际开发中的应用,旨在帮助读者掌握Java编程技能,为求职之路打下坚实基础。 1. **Java概述**:Java是一种面向对象的、跨平台的编程语言,由Sun ...
《ThinkJava第三版》是一本深受程序员喜爱的编程教材,主要针对初学者,同时也适合有一定经验的开发者温故知新。这本书以其清晰易懂的写作风格和全面深入的Java编程知识,成为了东软实训中不可或缺的教学材料。下面...
通过这些实例,初学者能深入理解Java编程的基本概念和常用技巧,而有经验的开发者也可以温故知新,巩固基础。实践中学习和解决问题是提升编程技能的关键,这个压缩包中的55个实例正是为此目的而准备的。
1. **Java基础**:本书首先介绍了Java语言的基础,包括如何安装Java开发环境(JDK),编写第一个“Hello, World!”程序,理解Java程序的生命周期,以及如何进行基本的输入输出操作。 2. **变量与数据类型**:书中...
Java的基础部分,首先从变量、数据类型开始,包括基本类型如int、char、boolean,以及引用类型如类、接口、数组。理解这些基础元素是构建任何程序的基础。接着,会讲解控制流,如if语句、switch语句、for循环和while...