Java 接口技术 Interface
一、什么是接口技术(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的更多相关文章
- 【PHP面向对象(OOP)编程入门教程】20.PHP5接口技术(interface)
PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法.接口是一种特殊的抽象 ...
- PHP面向对象(OOP):PHP5接口技术(interface)
PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法.接口是一种特殊的抽象 ...
- Java 接口关键字 interface
interface这个关键字产生一个完全抽象的类,它根本就没有提供任何具体的实现,它允许创建者确定方法名.参数列表和返回类型,但没有任何方法体,接口只提供了形式,而未提供任何具体实现 一个接口表示:& ...
- Java 接口(interface)的三种类型
放入接口中的任何域(成员变量)都自动是 static 和 final 的: 1. 包含抽象方法的常规接口 2. 全部是常量的 接口类中的方法和属性不要添加任何修饰符号(public 也不需要). 因为 ...
- java 接口(interface)
接口定义:[修饰符] interface 接口名 extends 父接口名1,父接口名2 ...{ } 接口可以说是一种特殊的抽象类.接口只能定义方法,而不能实现方法的实例. 1.接口中能够定义抽象方 ...
- java接口
一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...
- Java 接口基础详解
目录 Java接口示例 实现一个接口 接口实例 实现多个接口 方法签名重叠 接口变量 接口方法 接口默认方法 接口与继承 继承与默认方法 接口与多态性 在Java中,接口是一个抽象类型,有点类似于类, ...
- JAVA的核心概念:接口(interface)
JAVA的核心概念:接口(interface) 接口与类属于同一层次,实际上,接口是一种特殊的抽象类. 如: interface IA{ } public interface: 公开接口 与 ...
- java中的interface接口
接口:java接口是一些方法表征的集合,但是却不会在接口里实现具体的方法. java接口的特点如下: 1.java接口不能被实例化 2.java接口中声明的成员自动被设置为public,所以不存在pr ...
随机推荐
- html里显示中文乱码的解决的方法
在HTML开头统一规范下编码格式: <meta http-equiv="Content-Type" content="text/html; charset=utf- ...
- luogu2437 蜜蜂路线
题目大意 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M<N,有多少种爬行路线?M,N<=1000 题解 看到M ...
- Android系统之Recovery移植教程 【转】
本文转载自:http://luckytcl.blog.163.com/blog/static/14258648320130165626644/ recovery的移植,这方面的资料真实少之又少啊,谷歌 ...
- 寒武纪芯片——有自己的SDK,支持tf、caffe、MXNet
寒武纪芯片 产品中心>智能处理器IP 智能处理器IP MLU智能芯片 软件开发环境 Cambricon-1A 高性能硬件架构及软件支持兼容Caffe.Tensorflow.MXnet等主流AI开 ...
- [Database] 列出MSSQL所有数据库名、所有表名、所有字段名
1.获取所有数据库名 Select Name From Master..SysDatabases order By Name 2.获取所有表名 Select Name From SysObjects ...
- 第一个"hello python!"
第一个python程序"hello python!" 首先打开我们的编辑器,在安装好python后,直接在windows快捷方式里,输入IDLE,就可以看到我们的python默认自 ...
- Hashmap 详解和迭代器问题
重点介绍HashMap.首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.在下文中会 ...
- C#泛型类的用途和说明
class Program { public class Test<T, S> { //泛型类的类型参数可用于类成员 ...
- .NET中使用反射访问属性方法
.net所编写的程序集包含两个重要部分:IL(中间语言代码) 和metadata(元数据).我们编写的代码中不是有很多很多的类吗,类有很多很多的成员,在编译代码的时候,元数据表就根据代码把类的所有信息 ...
- 动画库animate.css的用法
简介 animate.css是一个来自国外的 CSS3 动画库,它预设了引起弹跳(bounce).摇摆(swing).颤抖(wobble).抖动(shake).闪烁(flash).翻转(flip).旋 ...