一、理论
0.添加格式:
interface 接口名 {
属性、方法、事件、索引器
}
// 比如定义一个U盘类,继承接口 interface Usb{ // string type; 接口不能包含字段 string Type{get;set;} void Read (); // 只声明不实现 } class Upan:Usb{ public string Type{get;set;} public void read(){ Console.WriteLine("U盘读取数据"); } } class Yapn:Usb{ public string Type{get; set;} public void Read(){ Console.WriteLine ("这是什么啊,硬盘?读不了,插错口了"); } }
1.接口是为了解决C#不能多继承的问题而生
2.接口的继承,只继承声明
3.类的继承,声明和实现都要继承
4.接口的注意事项
4.1 接口使用 interface关键字修饰,可以由属性、方法、索引器组成,不能包含字段
4.2 在接口中,只能声明,不能实现
4.3 由于接口是用来给别人继承的,所以所有的成员默认都是public,无需添加访问修饰符(添加会报错)
5. 接口的使用
5.1 接口定义出来就是让别的类去继承的
5.2 一个类继承了几口,就要实现接口中的所有方法
6.接口和抽象的对比
相同点:都含有抽象成员
都不能直接实例化对象
不同点:抽象中可以有不同成员,接口只能由抽象成员
抽象只能有一个父类,接口可以有多个父类
抽象的成员可以私有,接口成员只能是公开的
接口不能有构造、析构、静态,常量只能有方法、属性、引擎器
7.接口的多重继承
例如:
// 定义接口a interface a { void ATest(); } // 定义接口b继承a interface b { void BTest(); } // 定义接口cclass继承b class cclass:b,a //如果用一个类继承多个接口,接口之间可以用逗号隔开 { public void ATest(){ Console.WriteLine ("这是A"); } public void BTest(){ Console.WriteLine ("这是B"); } } a aa = new cclass (); aa.ATest (); b aaa = new cclass (); aaa.BTest (); aaa.ATest ();