委托

1、接口:

    接口与抽象类一样,也是表示某种规则,一旦使用了该规则,就必须实现相关的方法。对于C#语言而言,由于只能继承自一个父类,因此若有多个规则需要实现,则使用接口是个比较好的做法。

 

2、接口的定义

interface 接口名

{

    方法声明;

}

 

3、不同接口中若有多个相同名称的方法,则需要显式指定接口名,例如:

                       

4、接口的使用

使用接口也可以实现多态。

代码如下:

class Program

{

    static void Main(string[] args)

    {

        //提供三个类,完成工资的计算

        List<ICalu> list = new List<ICalu>();

        list.Add(new Boss());

        list.Add(new Clert());

        list.Add(new Clert());

        list.Add(new Customer());

        foreach (ICalu emp in list)

        {

            emp.Calu(); //多态

        }

    }

}

class Boss : ICalu

{

    public  void Calu()

    {

        Console.WriteLine("计算老板工资");

    }

 

}

class Customer : ICalu

{

    public  void Calu()

    {

        Console.WriteLine("计算客户工资");

    }

}

class Clert : ICalu

{

    public  void Calu()

    {

        Console.WriteLine("计算职员工资");

    }

}

interface ICalu

{

    void Calu();

}

 

 

5、接口应用场合举例

 6、接口demo

using System;

using System.Collections.Generic;

using System.Linq; using System.Text;

namespace ConsoleApplication1 {

    class Program     {     

    static void Main(string[] args)         {    

         List<IShow> list = new List<IShow>();      

       list.Add(new Map());     

        list.Add(new Voice());   

          list.Add(new Video());    

         list.Add(new ThreeD());

            foreach(IShow ishow in list)             {      

           ishow.Show();             }   

      }  

   }  

    interface IShow     {    

     void Show();     }   

  public class Map:IShow     {    

     public void Show()      

   {       

      Console.WriteLine("显示图片");         }    

}  

   public class Voice : IShow     {    

     public void Show()         {   

          Console.WriteLine("播放声音");         }

    }   

  public class Video : IShow     {   

      public void Show()   

      {         

    Console.WriteLine("显示视频");         }  

   }     public class ThreeD : IShow     {  

       public void Show()         {    

         Console.WriteLine("3D交互");         }    

}

}

 

 

using System;

using System.Collections.Generic;

using System.Linq; using System.Text;

namespace ConsoleApplication2 {

    public delegate void Mydel();  

   class Program     {       

  static void Main(string[] args)         {    

         Hospital h = new Hospital();       

      People LaoWang = new People();  

           LaoWang.OnEatTooMuch += new Mydel(h.Check);    

         LaoWang.Eat(10);         }   

              }

 

    class People     {    

     public event Mydel OnEatTooMuch;    

     public void Eat(int i)         {       

      if(i<3)             {  

               Console.WriteLine("吃的太少");             }  

           else if(i==3)             {                 Console.WriteLine("吃的正好");             }   

          else if (i <=5)             {                 Console.WriteLine("吃的多了点");             }    

         else             {                 if(OnEatTooMuch!=null)        

         {    

                 OnEatTooMuch();                 }   

          }     

    }    

}

 

    class Hospital     {   

      public void Check()         {             Console.WriteLine("治疗");         }  

 

   }

 

}

posted @ 2014-02-18 19:18  linbin524  阅读(489)  评论(0编辑  收藏  举报