接口,接口的定义
2016-11-01 22:45 backyyan 阅读(1746) 评论(0) 编辑 收藏 举报接口interface,顾名思义,是为了一种事物与另一种事物进行交流提供的通道(手段),例如我们现在的操作系统是Windows系统,我们见到的界面和各个功能的按钮都是图形用户接口,接口就是用户和应用程序内部交互的界面。接口实际上有两种含义:一是一个类所具有的方法的特征集合,是一种逻辑上的抽像;二是java接口,java语言中存在的结构,有特定的语法和结构,前者叫做“接口”后者叫做“java接口”。本节我们研究的是java接口。
java中的接口是一系列方法的声明,是一些方法的特征集合。一个接口只有方法特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口具有以下特征:
(1)在java中只支持单继承。如果要实现多继承可以通过接口实现。
(2)封装性。接口提供一种途径,使类隐藏其处理的特定事物的细节,仅对外公布它必须支持的属性。只需要知道调用的方法及其参数,而不需要知道内部的实现。
(3)面向接口变成,比如A,B实现接口C,在一个方法的参数中可以写C(可以代表A也可以代表B),到时动态地传入A或B 的实例都可以。
接口的定义:接口包含常量和抽像方法,没有变量和其他成员方法,一旦定义了接口,所有的类都可以实现该接口,并且由于接口支持多继承,多以一个类一次可以同时实现多个接口。接口的具体定义格式如下:
[public] interface 接口名 [extends 多个父接口]
{
[public] [static] [final] 类型 常量名=值;
[public] [abstract] 返回类型 方法名([参数]);
}
其中接口中默认的属性都是常量,并且常量默认必须是公有常量,不允许有变量和普通方法,所以常量的修饰符,不能写具体的实现,所以方法前的修饰符public和abstract也可以省略。例如定义A接口:
interface A{
int p=4.14;
void show();
}
接口A 的属性p为一个public常量,show()为一个public的抽像方法。需要注意的是,由于p是一个常量,所以p在定义的同时必须给他赋初值。
接口定义的同时,可以指出它的封装性。如果是public,任何地方都可以实现接口;如果没有public,为默认状态,只能被同一个包中的类访问。
接口支持多继承多个接口之间用逗号隔开,其父亲也必须是接口。例如:
public interface Father{
void fn1();
void fn2();
}
public interface Mother{
void fn3();
void fn4();
}
public interface Son extends Father,Mother
{
void fn5();
}
在Father接口中有fn1()和fn2()两个抽像方法,Mother接口中有fn3()和fn4()两个抽像方法.定义的Son接口中有一个fn5()抽像方法,由于他的父亲是Father和Mother接口,所以Son接口中应该有5 个抽像方法。如果一个类实现Son接口,它必须实现Son,Father,Mother中的5个方法。
ps:接口的父亲一定是接口,不能是类。