接口
- 接口:接口是一组包含了类或结构可以实现的功能的定义
- 接口可以包含事件,索引器,方法和属性,但是不能包含字段
//接口名一般以大写字母 I作为开头
interface IUSB
{
string USB_Type {
get; set; }
string ReadFile();
void WriteFile(string content);
}
- 接⼝相⽐类,最⼤的不同之处在于,只有定义没有实现
- 接口是一个引用类型,只包含了功能的定义,不包含功能的实现
- 接口成员的访问级别是默认的(默认为public),不可以使用其他修饰词修饰
- 类的继承只能单继承,接口的实现支持多实现,实现多接口时,用逗号隔开
class Computer : IUSB, IVGA
- 接⼝不能进⾏实例化,只能被类或结构体或其他接⼝实现
- 如即继承类,⼜实现接⼝时,类要放在最前⾯,接⼝放在后⾯,中间都用逗号隔开
//Cube是父类,IArea和IVolumn为接口
class Square : Cube, IArea, IVolumn
- 接口一旦被实现,就必须实现接口当中的所有成员
- 接口与抽象类的相同点:两者都不能被实例化,两者都包含了由其他类或结构继承或实现的抽象成员
- 接口与抽象类的不同点:抽象类当中除了拥有抽象成员外还可以拥有非抽象成员,而接口中所有的所有成员都是抽象的;抽象成员可以使用修饰符修饰,接口当中接口成员访问级别是默认不可修改的,并且默认是public;接口当中不可以包含构造方法,析构方法,静态成员以及常量
泛型
一、泛型方法
- 有些时候重载的⽅法只有参数类型不同,其他的都⼀样,这时就可以使⽤泛型
- C#中的泛型能够将类型作为参数来传递,即在创建类型时用一个特定的符号如“T”来作为一个占位符,代替实际的类型,等待在实例化时再用一个实际的类型来代替
- 平时⽅法⾥传递的是参数,是变量,参数传递⽤的是⼩括号(),⽽泛型传递的是数据类型,泛型传递⽤的尖括号<>