学无止境的专栏

Live And Learn

接口的定义


    
 
组件编程技术
 
组件
把庞大的应用程序分割成多个模块,每个模块完成独立的功能,模块之间协同工作,这样的模块叫组件.
 
接口
接口描述了组件对外提供的服务.在组件和组件,组件和客户之间都是通过接口进行交互,组件接口一旦发布,就尽量不要再修改接口,任何对接口修改的改变都有可能造成组件与客户的联系遭到破坏.
 
 
                            接口定义
 
从技术上讲,接口是一组包含了函数型方法的数据结构.通过这组数据结构,可以代码可以调用组件对象的功能.
 
接口的定义可以使用以下修饰符
New ,public,private,protected,internal
在接口定义时同一修饰符不能出现多次,new 修饰符只出现在嵌套接口中,表示覆盖了继承而来的成员名.
 
在接口的声明中可以定义接口的成员,接口成员可以是,方法,属性,索引指示器,事件.
     interface IControl
     {
         void Pain();
     }
声明了一个接口IControl,定义了一个成员方法Pain
 
接口的继承
 
接口具有不变性,但不意味着接口不再发展,类似于类的继承性,接口也可以继承和发展
值得注意的是,接口的继承和类的继承不一样.
1,类的继承不仅是说明继承,而且是实现继承,而接口继承只是说明继承,也就是说,派生类可以继承基类的方法实现,而派生类的接口只继承了父接口的成员方法说明,而没有继承父接口的实现
2,C#只允许类单继承,但接口允许多继承,一个子接口可以有多个父接口
 
被继承的接口必须是可以访问的到的,接口不允许直接或间接的从自身继承 
interface IControl
    {
        
void Pain();
    }
    
interface TextBox:IControl
    {
        
void SetText(string text);
    }
    
interface IComboBox:IControl,TextBox
    {}
 
接口IComboBox同时从IControl,TextBox中继承,多继承用逗号分割
 
接口成员
 
接口可以定义一个或多个成员,这些成员可以是方法,属性,索引指示器,事件,但不能是常量,域,操作符,构造函数,析构函数,而且不能包含任何静态成员
接口成员的默认访问方式是public,接口成员声明不能包含任何修饰符,接口可以声明与继承而来的成员名字相同的成员,这样就直接覆盖了继承的成员,如果在声明时不加NEW则编译器会报错
 
对接口成员的访问
 
接口成员访问与类的访问一致,但由于支持多继承,会发生出现两个同名的父继承成员,产生二义性,这是需要显示的进行声明.
 
 
interface ISequence
     {
         int Count
         {
              get;set;
         }
     }
     interface IRing
     {
         void Count(int i);
     }
     interface IRingSequence:ISequence,IRing{}
     class c
     {
         void test(IRingSequence rs)
         {   
              ((IRing)rs).Count(1);
              ((ISequence)rs).Count=1;
         }
     }
 
 
类C的方法test要访问接口IRingSequence的成员,必须先声明一个此接口的变量,然后显示指定具体继承的父属性的成员.
 
使用接口全名进行访问
直接用接口名.成员名进行访问,如果在命名空间内还需要包含命名空间名,例如
IControl.count;
Namespace.IControl.count
全名中的成员必须是在接口中声明过的,不能用继承而来的

 
阅读更多
个人分类: C#学习
上一篇接口的实现
下一篇用 XmlReader 读取 Excel 2007 文件
想对作者说点什么? 我来说一句

VGA信号接口定义

2010年08月07日 45KB 下载

常规LVDS接口液晶屏定义

2010年07月02日 25KB 下载

PCI接口完整引角定义原理图

2008年09月08日 77KB 下载

IDE接口及针脚定义

2014年10月26日 47KB 下载

各种硬件接口规范、定义.rar

2008年12月11日 728KB 下载

USB接口封装及定义

2011年03月25日 387KB 下载

没有更多推荐了,返回首页

关闭
关闭