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表示接口
原文地址:https://www.cnblogs.com/dclcc/p/3132625.html