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 键查看运行结果,

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

 例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 键查看运行结果,

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    


  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值