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表示接口
浙公网安备 33010602011771号