S2/JAVA/04-接口

接口的定义语法:[修饰符]   interface   接口名    extends    父接口1、父接口2……{

//常量定义

//方法定义

}

 

类实现接口的语法:class   类名    extends   父类名    implements    接口1、接口2……{

//类成员

}

 

接口的命名规则与类相同。如果修饰符是public,则该接口在整个项目中可见;如果省略修饰符,则该接口只在当前包可见。

接口中可以定义常量,不能定义变量。接口中的属性都会自动用public static final修饰,即接口中的属性都是全局静态常量。接口中的常量必须再定义时指定初始值。

public     static     final   int    PI=3.14

int   PI=3.14                                        //在即口中,这两个定义语句效果完全相同

Int   PI                                                  //错误!在借口中必须指定初始值,在类中会有默认值

接口中所有方法都是抽象方法。接口中方法都自动用public  abstract修饰,即接口中只有全局抽象方法。

和抽象类一样,接口也不能实例化,接口中不能有构造方法。

接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。

接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。

 

一个类只能有一个直接父类,但可以通过implements实现多个接口。当类在继承父类的同时又实现了多个接口时,extends关键字必须位于implements关键字之前。

 

接口与抽象类的区别在于:抽象类利用代码复用,接口利于代码维护。

 

在面向对象编程中提倡面向接口编程,而不是面向实现编程。

 

C#中定义接口的语法:[修饰符]     interface    接口名    父接口1、父接口2……{

//属性定义

//方法定义

}

 

C#中实现接口的语法:class  类名  :   父类名  、接口1、接口2……{       }

接口之间可以通过冒号来实现继承关系,一个接口可以继承多个接口,但接口不能继承类。类只能继承一个父类,但可以实现多个接口,使用冒号来继承类并实现接口。

接口定义零个或多个成员,成员主要是方法、属性和索引器。接口中不能包含常量、变量或构造方法,也不能包含任何静态成员。

接口IE口中成员访问权限是public,定义接口时显示指定任何修饰符都是非法的。

按照惯例,C#中接口的名称以大写字母“I”开头。

 

JavaC#语言中,接口具有以下区别。

Java总接口通过extends来继承父接口,类通过implements实现接口;C#中通过冒号来实现这两个功能。

Java接口中的成员变量(属性)都是常量,自动用public static final修饰;C#接口中不允许存在成员变量,但可以有属性。

Java接口中属性和方法都可以使用public修饰;C#中默认为public,但不允许显示使用public修饰。

Java接口中可以定义静态常量和方法,C#接口中不允许包含任何静态成员。

posted @ 2016-06-05 23:08  water5832  阅读(296)  评论(0编辑  收藏  举报