java接口

来源:互联网 发布:关于淘宝开店的相关知识 编辑:程序博客网 时间:2024/05/16 07:47

接口:

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

    (所有的属性都是公开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;③接口没有构造方法;
       ④接口也不能实例化,但能定义引用;
       ⑤一个类可以同时实现多个接口(实现关系相当与变相的继承);⑥一个接口可以同时继承自多个副接口
0 0