一、什么是接口技术(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. Android訪问网络,使用HttpURLConnection还是HttpClient?

    原文地址:http://android-developers.blogspot.com/2011/09/androids-http-clients.html 大多数的Android应用程序都会使用HT ...

  2. Android SQLite服务--创建、增删改查

    <pre name="code" class="java">import android.content.Context; import andro ...

  3. Linux shell脚本中shift的用法说明【转】

    本文转载自:http://blog.csdn.net/zhu_xun/article/details/24796235 Linux shell脚本中shift的用法说明 shift命令用于对参数的移动 ...

  4. bzoj3224: Tyvj 1728 普通平衡树(splay)

    3224: Tyvj 1728 普通平衡树 题目:传送门 题解: 啦啦啦啦又来敲个模版水经验啦~ 代码: #include<cstdio> #include<cstring> ...

  5. php连接符

    php连接符 很多时候我们需要将几个字符串连接起来显示,在PHP中,字符串之间使用 “点” 来连接,也就是英文中的半角句号 " . " ." . " 是字符串连 ...

  6. grpc vs2015编译

    获取gRPC源码 gRPC是开源框架,项目代码在github上,所以首先要安装github.github安装后,在指定文件夹中,执行git命令就可以获取gRPC的所有源码. git clone  ht ...

  7. getElementById和querySelector区别

    1.常见的获取元素的方法有3种,分别是通过元素ID document.getElementById('idName');.通过标签名字document.getElementsByTagName(tag ...

  8. c语言递归讲解分析

    C语言允许函数调用它自己,这种调用的过程称为"递归(recursion)" 举例说明,如下代码: #include <stdio.h> void up_and_down ...

  9. ansible usually

    链接地址:https://my.oschina.net/kangvcar/blog/1830155

  10. 修改数组数据头和尾push()、pop()和unshift()、shift()

    1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...