码迷,mamicode.com
首页 > Windows程序 > 详细

C#学习(四)之接口

时间:2015-04-04 19:36:34      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

第四周章老师详细讲了C#有关接口,数组以及字符串方面的知识,由于后两者知识点太过零碎,不太容易记录,所以本次学习记录就只讨论一下接口。

 

接口,使用interface关键字进行声明,功能是把所需成员组合起来,以封装一定功能的集合。它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。

需要牢牢记住的是:接口不能直接实例化,接口不能包含成员的任何代码,只定义成员本身。接口成员的具体代码由实现接口的类提供。

接口的声明格式如下列代码所示:

1 [attributes] [access-modifiers] interface interface-name [:base-inteface-list] 
2 { 
3        interface body 
4 }


各项释义

attributes(可选):附加的定义性信息。

access-modifiers(可选):允许使用的修饰符有 new 和四个访问修饰符。分别是:newpublicprotectedinternalprivate。在一个接口定义中同一修饰符不允许出现多次,new 修饰符只能出现在嵌套接口中,表示覆盖了继承而来的同名成员。public, protected, internal, private 修饰符定义了对接口的访问权限,默认值是internal。

interface-name :接口名, 习惯上以大写 I 开头。

base-inteface-list(可选):包含一个或多个显式基接口的列表,接口间由逗号分隔。

interface body 接口主体(不能有访问修饰符),只是定义接口的方法和属性等的签名,实际的实现是写在使用该接口的class里。

实际接口声明代码示例如下:

1 public interface IStorable
2 {
3     void Read( );//注意这里一定不能有public之类的修饰符
4     void Write(object);//并且只是签名,不能有实际内容
5 }

接口的继承使用示例如下:

1 public class Document : IStorable//如继承一般类一般继承接口
2 {
3     public void Read( ) {...}//这里可以加修饰符了,并写出实现代码
4     public void Write(object obj) {...}
5     // ...
6 }

一个类是可以继承多个接口的,代码示例如下:

 1 interface ICompressible//定义新接口
 2 {
 3     void Compress();
 4     void Decompress();
 5 }
6 public class Document : IStorable, ICompressible 7 { 8 //实现IStorable 9 public void Read( ) {...} 10 public void Write(object obj) {...} 11 // 实现ICompressible 12 public void Compress(){ …} 13 public void Decompress() { …} 14 }

另外,接口也是可以继承接口的,代码示例如下:

 1 interface ILoggedCompressible 
 2 : ICompressible
 3 {
 4     void LogSavedBytes();
 5 }
 6 
 7 public class Document : ILoggedCompressible 
 8 {
 9     // 实现ICompressible
10     public void Compress(){ …}
11     public void Decompress() { …}
12     // 实现ILoggedCompressible 
13     public void LogSavedBytes() { …}
14 }

接口继承接口不用实现继承的接口中的方法,不过一个类继承一个有继承其他接口的接口时,一定要实现继承链上所有接口中的所有方法,不然就会报错。

同时,接口也是可以同时继承多个接口的,代码示例如下:

1 interface IStorableCompressible 
2      : IStorable, ILoggedCompressible//同时继承两个接口
3 {
4     void LogOriginalSize();  //增加的新方法
5 }

 

C#学习(四)之接口

标签:

原文地址:http://www.cnblogs.com/tjulym/p/4392493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!