您的位置:首页 > 编程语言 > Java开发

java接口

2015-09-12 12:02 369 查看
接口:

本质上是一个特殊的抽象类:

    (所有的属性都是公开public、静态static、常量final)(所有的方法都是公开public、抽象abstract的方法)比如:

注意:构造方法不能抽象,接口中没有构造方法

        IA方法默认为public,类实现时要加上public,必须且只能加public。可以把接口当作类来看待。那么试试instenceof,看是不是接口类型。结论true

       类可以继承一个类,同时去实现一个接口还可以实现多个接口:                  classAImplextendsMyClassimplementsIA,IB,IC{…………}}

 接口也可以继承接口,又允许多继承。

interfaceIDextendsIA,IB{…………}

}interfaceIA{

intA=10;//publicstaticfinalintA=10;intB=20;//publicstaticfinalintB=20;voidmethodA();//publicabstractvoidmethodA();voidmethodB();//publicabstractvoidmethodB();

}

classAImplimplementsIA{

publicvoidmethodA(){methodA(){………………}}//要记得加public

publicvoidmethodB(){methodB(){………………}

}}

classAImplextendsMyClassimplementsIA{//extends和implements

顺序不可颠倒

publicvoidmethodA(){methodA(){………………}}publicvoidmethodB(){methodB(){………………}

}}

但接口不能继承一个类,也不能实现某接口。多态时,可以把接口类型作为编译时类型。(十分常用)

接口的作用:(1)实现多继承

Car

People

汽车人类CarPerson

加了接口后还是树状关系,与C++的多继承有很大区别。

(2)可以对一个类进行再抽象,抽象出副类型

数据传输(USBu)

//当作USB对象看待,对类进行了一个再抽象

再比如:classCarPeopleextendsPeopleimplementsCar{…………}

}主副类型——使“结构简单,逻辑清晰”

(3)标准<地道的标准>

JDBC是用Java来访问数据库,Sun公司提供的一套API

硬件

存储设备硬盘输入设备

U盘键盘鼠标

USB设备

副类型“接口”

表示额外信息主类型副类型Java

OracleDB2MySQL

不同的数据库,算法相差

很大,很难用通用程序访问这些数据库。

       因为每种数据库都要有相应的Java程序去访问,需要知道其核心实现机制;这样,由Sun公司出面,定义了接口集,屏蔽掉不同数据库的差异。

所以,接口是标准,实现类来实现标准,用户来使用标准;接口是最重要的一种“解耦合”工具

(4)接口是实现回调的最好方式

举个简单的类的回调例子:

注意:尽量针对抽象编程,不要针对实现编程:m1(Weapont){t.attack();

}

针对接口编程(最通用的编程),即针对父类(抽象)编程,耦合度低尽量用若干小接口,而不是用一整个大接口——“接口隔离原则”:

说明:使用多个专门的接口比使用单一的总接口要好.

       小结一下接口的特点:

       ①接口中的所有方法都是抽象的;②接口所有属性都是public、static、final;③接口没有构造方法;

       ④接口也不能实例化,但能定义引用;

       ⑤一个类可以同时实现多个接口(实现关系相当与变相的继承);⑥一个接口可以同时继承自多个副接口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: