C#中的接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中的接口相关的知识,希望对你有一定的参考价值。

 一、接口的定义

        接口是一种引用类型,类似于抽象类,主要用来定义一些必须实现的功能。一旦定义了一个接口,而且定义了一个实现这个接口的类,使用这些类的用户就可以完成接口定义的功能。简单的说,接口就是一种模板,里面定义了一些方法和属性。而一个类要实现它,就必须要把接口所有的方法和属性都实现。

        二、接口的声明       

        ?[访问修饰符] interface <接口名>

        {

          //声明主体

        }

        例:

        interface IControl

        {

         void Paint();

        }

        注:在接口中包含的属性和方法仅仅是一个声明,不能包含它们的实现,在C#中的接口成员隐含是public,不能再加除new之外的其他修饰符。

        三、接口实现

        声明了一个接口只是定义了一些功能,或者说定义了要完成一些功能的契约,要使用这个功能,还必须用类来实现这个接口。

        接口实现举例:

       

[csharp] view plain copy
 
 技术分享技术分享
  1. <span style="font-family:Microsoft YaHei;font-size:18px;color:#000000;">    interface INumber//定义接口  
  2.      {  
  3.         int x  
  4.         {  
  5.         get;  
  6.         set;  
  7.         }  
  8.     }    
  9.     class Number : INumber  
  10.     {  
  11.         private int myx;  
  12.         public Number(int x)  
  13.         {  
  14.             myx = x;  
  15.         }  
  16.         public int x//对接口中属性X的实现  
  17.           {  
  18.             get { return myx; }  
  19.             set { myx = value; }  
  20.         }  
  21.     }</span>  
[csharp] view plain copy
 
 技术分享技术分享
  1. <span style="font-family:Microsoft YaHei;font-size:18px;color:#000000;">    class AppMain  
  2.     {  
  3.         private static void WriteX(INumber p)  
  4.         {  
  5.             Console.WriteLine("x={0}", p.x);  
  6.         }  
  7.         static void Main()  
  8.         {  
  9.             Number p = new Number(1);  
  10.             WriteX(p);  
  11.             string str = Console.ReadLine();  
  12.         }  
  13.     }</span>  

        四、接口的多重继承

        C# 不允许多重类继承,但 C# 允许多重接口实现,这意味着一个类可以实现多个接口。  

        ·接口可以从一个或多个父接口中继承,格式如下:

        interface  MyInterface: Ibase1,Ibase2

        { …..}

        ·接口有类来实现时,格式如下:

       class   类名: 父类,接口1,接口2,….,接口n

        { …..}

以上是关于C#中的接口的主要内容,如果未能解决你的问题,请参考以下文章

谈谈C#中的接口

什么是 C (COM) 中的接口,它与 C# 中的接口相同吗?

C#中的接口

C#中的接口

C#接口

C#中的接口