C# 接口的实现与继承

接口通过类继承来实现,一个类虽然只能继承一个基类,但可以继承任意接口。声明实现接口的类时,需要在基类列表中包含类所实现的接口的名称。.

例1

        创建一个控制台应用程序,该程序在例1 的基础上实现,Program 类继承自接口 ImyInterface,并实现了该接口中的所有属性和方法。然后在 Main 方法中实例化 Program 类的一个对象,并使用该对象实例化 ImyInterface 接口。最后通过实例化的接口对象访问派生类中的属性和方法。
        代码如下:
class Program:ImyInterface                            //继承自接口 {    string id ="";          string name ="";    public string ID                                //编号     {    get    {         return id;    }    set    {         id = value;    } } public string Name                                 //姓名 {      get      {           return name;      }      set      {           name = value;      }  }  public void ShowInfo()                            //显示定义的编号和姓名  {       Console.WriteLine(("编号\t 姓名");       Console.WriteLine(ID+"\t"+Name);  }  static void Main(string[] args)  {       Program program = new Program();             //实例化 Program 类对象        ImyInterface imyinterface = program;         //使用派生类对象实例化接口 ImyInterface        imyinterface.ID="TM";                        //为派生类中的ID属性赋值       imyinterface.Name="C# 3.5 从入门到应用开发";   //为派生类中的 Name 属性赋值         }}
        按 Ctrl+F5 键查看运行结果,如图1 所示。

C# 接口的实现与继承

图1 接口的实现实例运行结果

        上面的实例中只继承了一个接口,接口还可以多重继承,用多重继承时,要继承的接口之间用逗号(,)分隔。

 例2

       创建一个控制台应用程序,其中声明 3个接口、IPeopleI、ITeacher 和 IStudent,其中,ITeacher 和 IStudent 继承自IPeople。然后使用Program类继承这3个接口,并分别实现这3个接口中的属性和方法。

         代码如下:

interface IPeople{     string Name                                   //姓名      {          get;           set;     }     string Sex                                    //性别      {          get;           set;     }}interface ITeacher:IPeople                         //继承公共接口 {     void teach();                                //教学方法 }interface IStudent:IPeople                        //继承公共接口 {      void study();                              //学习方法 }class Program:IPeople,ITeacher,IStudent         //多接口继承 {    string name = "";    string sex = "";    public string Name                       //姓名     {         get         {              return name;         }         set         {              name = value;         }    }    public string Sex                        //性别     {         get         {              return sex;         }         set         {              sex = value;         }    }    public void teach()                      //教学方法     {         Console.WriteLine(Name +""+ Sex+"教师");    }    public void study()                       //学习方法     {         Console.WriteLine(Name +""+Sex +"学生");    }    static void Main(string[] args)    {         Program program = new Program();     //实例化类对象          ITeacher iteacher = program;        //使用派生类对象实例化接口 ITeacher          iteacher.Name ="TM";         iteacher.Sex ="男";         iteacher.teach();         IStudent istudent = program        //使用派生类对象实例化接口 IStudent         istudent.Name ="C#";         istudent.Sex ="男";         istudent.study();    }  }

按 Ctrl+F5 键查看运行结果,如图2 所示。

C# 接口的实现与继承

图2  接口的实现实例运行结果