• C#接口的使用


    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交互");         }    
    
    }
    
    }
    
     
  • 相关阅读:
    让.Net程序支持命令行启动
    拒绝卡顿——在WPF中使用多线程更新UI
    比NPOI更好用的Excel操作库——EPPlus
    利用Visual Studio Natvis 框架简化C++的变量调试工作
    使用LibZ合并.Net程序集,支持WPF
    SONY新的圈铁耳机
    找回VisualStudio异常设置中丢失的“用户未处理的(User-unhandled)”列
    去除下载文件属性中烦人的锁定状态
    POJ 3347 Kadj Squares
    POJ 1696 Space Ant(极角排序)
  • 原文地址:https://www.cnblogs.com/linbin524/p/3554779.html
Copyright © 2020-2023  润新知