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表示接口