• C#中接口与抽象类


    1、使用抽象类—注意事项

      不能使用抽象类实例化抽象类对象
      抽象方法不能有实现
      抽象类中的可以有实现方法
      抽象类可以没有抽象方法
      抽象方法只能在抽象类和接口中
      非抽象子类必需实现抽象方法、属性、索引器和事件
      和普通类一样,类继承时也只能继承一个抽象类
      抽象方法、属性、索引器、事件访问修饰符不能为private
      抽象类通常前类前加上Abstract
    [范围访问修饰符]  interface  接口名{
        返回值类型 方法名称(形参);
        类型  属性名称{get;set;};
        返回值类型  this{get;set;};
        event  委托类型  事件名称;
        //…
    }
    public interface IUSB
    {
        USBType Type { get; }
        void Write(byte[] data);
        byte[] Read();
    }
    
     2、实现接口
    [范围访问修饰符]  class 类名:接口名,接口名…{
        //接口的实现
    }
    接口名与接口之间使用逗号隔开
    在接口上点右键选择【实现接口】,VS自动生成需要实现的方法
    接口与类名之间用冒号隔开
    public class Mouse : IUSB,IMiniUSE
    {
        #region IUSB 成员
        /*接口实现*/
        #endregion
    }
    
    public class Mouse : IUSB
    {
        #region IUSB 成员
        public USBType Type
        {
            get { return USBType.Mouse; }
        }
        public Mouse()
        {
            this.point = new byte[4];
        }
        private byte[] point;
    
        public void Write(byte[] data)
        {
            if (data.Length > 4)
                throw new ApplicationException("数据过大");
            this.point = data;
        }
        public byte[] Read()
        {
            return this.point;
        }
        #endregion
    }
    


    3、接口—注意事项

      接口方法中必需没有访问修饰符,默认为public
      不能使用接口实例化接口对象
      接口中不能有实现方法,包括空实现
      非抽象类中实现接口必需实现接口中的抽象方法
      接口可以继承0个以上的接口
      接口是C#中实现多继承的一种手段
      通常在接口名前加I表示接口
  • 相关阅读:
    ASP.NET MVC 几种 Filter 的执行过程源码解析
    C#中的线程二(BeginInvoke和Invoke)
    C#中的线程一(委托中的异步)
    C#比较dynamic和Dictionary性能
    C#微信公众平台开发—高级群发接口
    js 关闭浏览器
    切图神器 --- Assistor
    切图 -- cutterman
    mac上用teamviewer远程windows输入问题
    A quick introduction to HTML
  • 原文地址:https://www.cnblogs.com/dclcc/p/3132625.html
Copyright © 2020-2023  润新知