`
iamnk2008
  • 浏览: 32807 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
社区版块
存档分类
最新评论

什么是接口?

    博客分类:
  • 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编译器会对代码进行检查,以确定没一次赋值,每一次方法的调用是符合类型的。如果有任何不相符合的情况,Java编译器就会给出错误。

  类型检查是基于这样一个简单的事实:每一变量的声明都给这个变量一个类型;每一个方法包括构造器的声明都给这个方法的特征。这样一来,Java编译器可以对任何的表达式推断出一个明显类型,Java编译器可以基于明显类型对类型进行检查。

  Java语言是类型安全的。这就是说,任何被Java编译器接受的合法的Java类保证是类型安全的。换言之,在程序运行期间,不会有任何类型的错误。一个Java程序根本不可能将一个本来属于一个类型的变量当作另一个类型处理,因此也就不会产生由此而引起的错误。

  简单的说,Java语言依靠三种机制做到了类型安全:编译期间的类型检查,自动的存储管理,数组的边界检查
分享到:
评论

相关推荐

    Java 接口.pdf Java面向对象设计 - Java接口 什么是接口? Java中的接口定义了一个引用类型来创建抽象概念

    什么是接口? Java中的接口定义了一个引用类型来创建抽象概念。接口由类实现以提供概念的实现。 在Java 8之前,一个接口只能包含抽象方法。 Java 8允许接口具有实现的静态和默认方法。 接口通过抽象概念定义不相关...

    C++ COM编程之什么是接口?

    主要介绍了C++ COM编程之什么是接口?在C++中,可以使用抽象基类来实现COM接口,需要的朋友可以参考下

    IBMS系统集成哪些弱电系统,以及需要对接哪些接口?.pdf

    IBMS系统集成哪些弱电系统,以及需要对接哪些接口?.pdf

    java面试常见问题(超详细).pdf

    什么是覆盖【Overriding】?它们有什么区别? Java中什么是多态?如何实现多态? Java中什么是接口?它有什么作用? Java中什么是抽象类?它有什么作用? Java中什么是final关键字?它有什么作用? Java中什么是...

    (完整版)什么是DVI接口?DVI接口定义、类型、图片.doc

    (完整版)什么是DVI接口?DVI接口定义、类型、图片.doc

    什么是DVI接口?DVI接口定义、类型、图片.doc

    什么是DVI接口?DVI接口定义、类型、图片.doc

    java最新高薪面试题库.docx

    什么是接口?Java中的接口有哪些特点? 什么是泛型?Java中的泛型有哪些特点? 什么是反射?Java中的反射有哪些应用场景? 什么是异常?Java中的异常有哪些类型?如何处理异常? 什么是并发集合?Java中的并发集合有...

    Java常见面试题.pdf

    7. 什么是接口?如何实现接口? 8. 解释 Java 中的异常处理机制。 9. 如何处理文件和文件夹的输入输出(IO)? 10. 什么是线程?如何创建和管理线程? 11. 解释 Java 中的同步和锁的概念,如何避免线程安全问题? 12...

    JAVA经典基础面试题及答案.docx

    什么是接口? 接口是一种抽象类型的实现,它定义了一组方法的签名,但是并没有具体的实现。接口可以被其他类实现,从而实现这些方法的具体逻辑。 什么是异常? 异常是程序在运行时出现的错误或异常情况。JAVA中的...

    Java复习大纲面试题.doc

    一、简答题 1.编译java程序使用什么命令?运行java使用什么命令? javac *.java java 类名 2.什么是JDK,什么是JRE,JDK与JRE有什么区别? JDK:Java Development Toolkit Java开发...什么是接口?抽象类与接口的区别?

    SATA接口是什么?.docx

    SATA接口是什么?.docx

    如何使用主板红外接口?.docx

    如何使用主板红外接口?.docx

    Java面试问题带答案40道.docx

    4. Java中什么是接口? 答:接口是一种与具体实现无关的规范,其中只包含了方法的声明而没有实现。它可以被实现多次,并且一个类可以实现多个接口。 5. try-catch-finally块中有哪些必须要有的部分? 答:try和...

    【rest接口】什么是rest?用swagger优雅开发rest

    【rest接口】什么是rest?用swagger优雅开发rest

    如何设计一个良好的API接口?.doc

    如何设计一个良好的API接口?.doc

    面向接口编程详解

    是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象 类代替接口呢?而且,作为程序员,一定经常听到“面向接口编程”这个短语,那么它是 什么意思?有什么思想内涵?和面向对象...

    微机接口技术

    什么是接口?接口就是微处理器CPU与外部世界的连接部件,是CPU与外界进行信息交换的中转站。

    接口测试面试题50题完整版

    1. 什么是接口测试? 2. 接口测试的目的是什么? 3. 接口测试主要关注哪些方面? 4. 接口测试的常用工具是什么? 5. 如何进行接口测试? 6. 接口测试的流程是什么? 7. 接口测试中需要注意哪些问题? 8. 如何保证...

    java中的接口概略

    接口是Java中的很重要的一个知识点,首先我们要初步了解从生活中了解“接口”的概念,什么是接口? 1. 生活中的接口 生活中比较常见的接口: USB接口,国标插座,Type-C, 3.5MM, ARJ45, Lighting接口, HDMI, VGA, ...

    Java语言:什么叫面向接口编程

    Java语言:什么叫面向接口编程 非接口编程?是不是就是面向过程的编程思想?  1.关于接口的理解。  接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。  我们在一般实现一个系统的...

Global site tag (gtag.js) - Google Analytics