inte老粮充附庆胶控天请rface是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来封装一定功能的集合。来自它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。接口不能直接实例化,即ICount ic=new iCount()是错的。接口不能包含成员的任何代码,只定义成员本身。接口成员的具体代码由实现接口的类提供。接口使用interface关键字进行声明。
接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。
声明格式如下:
[attributes] [modifiers] interface identifier [: base-list] {interface-body} {;}
1、attributes(可选)跳了乎皇买矿:附加的定义性信息。
2、modifiers(可选): 允许使用的修饰符有 new 和四个访问修饰符。分别是:new、public、protected、internal、 private。在一个接口定义中同一修饰符不允许出现多次,new 来自修饰符只能出现 在嵌套接口中,表示覆盖了继承而来的同名成右种缺信度语复阿员。The public360百科, protected, internal, and private 修饰符定义了对接口的访问权限。
叶 3、指示器和事件。
4、identifier:接口名称。
5、base-list(可选):包含一个或多个显式基接口的列表,接口间由逗号分隔。
6、interface-body:对接口成员的定义。
7、接口可以是命名空间或类的成员,并且可以包含下列成员的签名: 方法、属性、索引器 。
8、一个接口可从一个或多个基接口继承。
接口这个概念在C#和Java中非常相似。接口的关键词是interface,一个接口可以扩展一图协出核执征个或者多个其他接口。按照惯例,接口的名字以大写字母"I"开头。
同一计算机不同功能层之间的规她答频抗别优它通信规则称为接口。
对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些陈阿看明鲜吗紧身银别全操作。接口指定必须由类提社阳更意怎布消无茶始供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。
接口中可以声明属性、方法、事件和类型(Structure),(但结深不能声明变量),但是并不能设置这些成员的具斤脸住属极卷体值,也就是说,只能定义,不能给它里面定义的东西赋值。
l 【定义】Java中,能够完成特定功能的,由若干属性和方法组织成的,相对独立的属性和方法的集合。
l 【用途】实现类的多继承,以解决Java只能单继承,不支持多继承的问题。
l 【特点】
来自用关键字interface定义接口,通过关键字implements来实现接口;
接口中的成员变量具有公共性(public)、静态性(static)和最终性(final)。所以修饰符只能是public,因此只能定义常量
360百科实现多接口的类必须符合3个原则:能为所有的接口提供实现的功能,
能遵循重写的所有规则,
能保持相同的返回的数据类型定奏大华另京想走越集汉。
接口的"继承"与类之间的继承不同,"继承"该接口的类,需要"自力更生",去实现接口中的抽象方法,因此接口也相当于一个特殊的抽象类。
接口相当于程序开发的一入合步组协议,需要此功能的类均可"继承"该方法和集合。
第接口中的属性都是静态常量,方法都是抽象方法(即没有给出方法具体定义),一个类实现接口后,将继承接口中的所有静态常量。
实现接口中的抽象方法时,方法头必须与接口定义中的方法头完全相同(包括访消责问控制修饰符、返回值类型、参数列表等)(例外:可去掉关键abstract、接口定义时public可缺省,但是实现时不可行内用企愿见艺住半满缺)
l 【范例】
定义接口格式:
[public]interface 接口名称 [extends优探报考紧父接口名列表]
{
//静态常刻影较广首圆饭量
[public] [static] [fin械频al] 数据类型变量名=常量值;
//抽象方法
[public] [abstract] [native] 返回值类型方法名(参数列表);
}
实现接口格式:
[修饰符] class 类名[extends 父类名] [implements 接口A,接口B,···]
{
类成员变量和成员方法路缺备日;
为接口A中的所有方法编写方法体,实现接口A;
为接口B中的所有方法编写方法体,实现移念接口B;
}
实例:
本例定义接口AreaInterface,其中有静态常量pai和求面积的抽象方法area()。类Circle和类Rectangle实现了AreaInterface接口,即为接口中的优班黄搞抽象方法area()编写了满足各自要求的方法体,分别求圆形和长方形的面积。
程序:AreaInterface.java
程序:Circle.java
程序:Rectangle.java