using System;
// 接口用关键字interface来声明
// 接口的命名规范: 以大写字母I作为开头
public interface IUSB {
// 接口中定义了一系列的方法
// 接口中的方法不能有访问权限,也不能有方法体
// 接口中的方法其实不是抽象方法
void Charge();
void TransportData();
// 接口中还可以写访问器,要求实现类必须提供这个访问器,并且提供set和get方法
int Price { set; get; }
string Color { set; }
// string Kind { get; }
}
public interface ILighting {
void StartLighting();
void Charge();
}
public class Hardware {
public string name;
public void Charge() { }
}
// 一个接口做完后,需要有类来实现这个接口,否则没有意义
// 如果一个类实现了一个接口,那么这个类是这个接口的实现类
// 一个类在实现了一个接口的同时,要实现这个接口中所有的方法
// 继承和实现接口的语法是一样的
// 如果一个类在继承了一个父类的同时还实现了接口,那么父类必须放在接口的前面
public class Mouse : Hardware, IUSB, ILighting {
// 实现接口中所有的方法
// 实现接口方法的时候,一定是public权限
// 接口方法不是抽象方法,不能用override去重写
public void TransportData() { }
public void StartLighting() { }
public int Price {
set {
}
get {
return 1;
}
}
public string Color {
set { }
get { return ""; }
}
// public void Charge() { }
/* 如果实现的多个接口中有相同的方法,理论上实现一次就可以了
* 但是如果需要不同的实现,可以采用下列方式
void USB.Charge() { }
void Lighting.Charge() { }
*/
// 还可以写自己的成员
public void Show() { }
}
// 抽象类实现接口
public abstract class KeyBoard : IUSB {
// 必须实现接口中方法 -> 接口中的方法不是抽象方法
public virtual void Charge() { }
// 可以把接口中的方法实现为抽象方法
public abstract void TransportData();
}
public class ShuangFeiyan : KeyBoard {
public override void TransportData() {
}
}
接口
最新推荐文章于 2024-08-19 09:13:47 发布