zoukankan      html  css  js  c++  java
  • 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表示接口
  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/dclcc/p/3132625.html
Copyright © 2011-2022 走看看