一、什么是接口技术(Interface):

//举例中Comparable是一个接口,Employee是一个类

1.接口不是类,而是对类的一组描述,并不给出每个类的具体实现。

2.一个类可以实现多个接口,而实现接口的类要遵从接口描述的统一格式定义接口中的所有方法。

3.要将类声明为实现某个接口,需要使用关键字implements,如class Employee implements Comparable ,实现多个接口用逗号隔开即可。

4.接口不能含有实例域,但是可以定义常量(事实上接口的域自动设为public static final,即静态常量)。

5.接口中的所有方法自动地属于public,因此在接口中声明方法不必提供关键字public,但是在实现接口时必须把方法声明为public 。

6.不能构造接口的对象,尤其不能用new运算符实例化一个接口。

7.但是,可以声明接口的变量,如Comparable x ,接口变量必须引用实现了接口的类对象,如x = new Employee(...) 。

8.可以使用instanceof检查一个对象是否实现了某个特定的接口:anObject instanceof Comparable //为真表示anObject对象实现了Comparable接口。

9.接口可以通过继承来扩展。

二、接口有什么作用(Function):

1.统一标准,让大家都知道这个是做什么的,需要满足什么条件,并且让同时实现一个接口的类之间产生“关联”(可以相互替换实现)。

2.软件开发中很重要的一个理念就是“解耦”,接口和接口实现就是应用了这个理念,标准的制定和具体的实现相分离。

3.接口在开发过程中可以快速分离工作内容。

  比如调用者在写业务逻辑的时候需要一个功能,可能是数据库访问,或者复杂计算,但是他的工作专注于实现业务逻辑,不想分开精力去做底层实现,那么他只需要先实现一个接口,定义了规范,然后就可以继续他的业务逻辑代码了。而实现者可以根据这个接口规范,做具体的实现。这样通过使用接口就可以快速的分离工作内容,达到团队并行工作的目的。此外,如果规范是通过接口定义的,那么当这个功能有多个实现时,只要实现了这个接口,就可以快速的替换具体实现,做到代码层面的完全分离。

顺便说一下克隆技术

1.克隆分为浅拷贝和深拷贝,默认的克隆操作是浅拷贝。

2.浅拷贝并不拷贝对象中的内部对象,而是与原对象共享。

3.深拷贝则同时拷贝对象中的内部对象,要实现深拷贝必须重新定义clone方法,克隆所有可变的实例域,并使用public访问修饰符修饰clone方法。

4.Object类中clone方法被声明为protected,受保护访问的规则极为微妙,子类只能调用受保护的clone方法克隆它自己。

Java 接口技术 Interface的更多相关文章

  1. 【PHP面向对象(OOP)编程入门教程】20.PHP5接口技术(interface)

    PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法.接口是一种特殊的抽象 ...

  2. PHP面向对象(OOP):PHP5接口技术(interface)

    PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法.接口是一种特殊的抽象 ...

  3. Java 接口关键字 interface

    interface这个关键字产生一个完全抽象的类,它根本就没有提供任何具体的实现,它允许创建者确定方法名.参数列表和返回类型,但没有任何方法体,接口只提供了形式,而未提供任何具体实现 一个接口表示:& ...

  4. Java 接口(interface)的三种类型

    放入接口中的任何域(成员变量)都自动是 static 和 final 的: 1. 包含抽象方法的常规接口 2. 全部是常量的 接口类中的方法和属性不要添加任何修饰符号(public 也不需要). 因为 ...

  5. java 接口(interface)

    接口定义:[修饰符] interface 接口名 extends 父接口名1,父接口名2 ...{ } 接口可以说是一种特殊的抽象类.接口只能定义方法,而不能实现方法的实例. 1.接口中能够定义抽象方 ...

  6. java接口

    一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...

  7. Java 接口基础详解

    目录 Java接口示例 实现一个接口 接口实例 实现多个接口 方法签名重叠 接口变量 接口方法 接口默认方法 接口与继承 继承与默认方法 接口与多态性 在Java中,接口是一个抽象类型,有点类似于类, ...

  8. JAVA的核心概念:接口(interface)

    JAVA的核心概念:接口(interface) 接口与类属于同一层次,实际上,接口是一种特殊的抽象类. 如:    interface IA{ }  public interface: 公开接口  与 ...

  9. java中的interface接口

    接口:java接口是一些方法表征的集合,但是却不会在接口里实现具体的方法. java接口的特点如下: 1.java接口不能被实例化 2.java接口中声明的成员自动被设置为public,所以不存在pr ...

随机推荐

  1. S 禁止F12和右键操作控制台,兼容各浏览器

    document.oncontextmenu = function () { return false; };         document.onkeydown = function () {   ...

  2. rac环境改动spfile后遭遇ora-29250小例

    原创作品.出自 "深蓝的blog" 博客.转载时请务必注明出处,否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/ar ...

  3. map-reduce入门

    map-reduce入门 近期在改写mahout源代码,感觉自己map-reduce功力不够深厚,因此打算系统学习一下. map-reduce事实上是一种编程范式,从统计词频(wordCount)程序 ...

  4. Shell脚本递归打印指定文件夹中全部文件夹文件

    #!/bin/bash #递归打印当前文件夹下的全部文件夹文件. PRINTF() { ls $1 | while read line #一次读取每一行放到line变量中 do [ -d $1/$li ...

  5. notifyDataSetChanged()刷新ListView(使用JSONArray绑定的Adapter)

    1.fragment代码: package com.ts.fragment; import java.util.ArrayList; import java.util.HashMap; import ...

  6. Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)

    今天配置Spring的xml出现了错误 Multiple annotations found at this line: - schema_reference.4: Failed to read sc ...

  7. EOJ 2847 路由结点

    数学知识 凸N边形的对角线条数为:n(n-3)/2因为每一个交点对应两条对角线,而两条对角线又对应着一个四边形.于是焦点个数就对应四边形的个数.问题转化成由凸n边形的n个顶点取4个顶点可组成多少个四边 ...

  8. day63-webservice 05.发布接口实现类的webservice

    package com.rl.cxf.client; import com.rl.inter.HI; import com.rl.inter.HIService; public class HiInt ...

  9. php 获取随机字符串(原创)

    //获取随机数字字母字符串 function get_rand_str($len=8){ $randArr=array_merge(range(0,9),range('a','z'),range('A ...

  10. 43.qt通过qss自定义外观

    样式: 文件格式类型: candy.qss /* R1 */ QDialog { /*设置背景图片*/ background-image: url(:/images/background.png); ...