接口
接口用interface关键字表示
可以存放成员: 属性 方法 事件 索引器
解决不能多重继承的问题
接口只负责类的声明 保证统一性
接口可以包含属性和方法的声明,但不能有字段
接口中的所有成员默认public,不能在访问修饰符
实现接口的任何类或者结构必须实现其所有成员方法
接口不能被直接实例化,可以通过子类简介实现、
类可以继承多个接口,也可以继承多个基类并实现一个或多个接口
可以继承多个接口,逗号隔开。需要实现所有继承接口的方法
一个子类在继承多个基类时 ,仍然可以继承接口
但是基类要放在继承的
*/
/*
接口和抽象类的相同点
1,都定义了一些未实现的属性和方法
继承他们的的类必须实现这些成员
2,都不能直接被实例化,都可通过子类间接实例化
3,都可以包含让相同子类继承时的抽象成员
不同点
抽象类中除了抽象成员还可以有非抽象成员
接口中只能包含抽象成员
2,抽象类中成员可以是私有的
接口中所有成员默认public
3, 接口中不能包含构造函数析构函数
静态成员和常量
4 一个类只有一个父类
接口可以有多个接口
接口也可以实现多个继承
*/
/*
* 泛型实现将类型作为参数
C#中的泛型可以把类型当做参数传递在定义时 ,用特殊符号表示
占位符来代替实际类型, 当这个类在实例化时就需要传入一个
实际类型,这样可以在外界控制参数类型、
优点:
1,使用泛型可以最大程度重用
保护类型 提高性能
2,降低强制类型装换 或装箱拆箱操作、
3,可以对泛型类型进行约束
缺点:
泛型成员类型不确定可能是类,结构体,所有不能使用算数运算符
比较运算符等
可以使用赋值运算符
//泛型类型的多参数
1,类型参数的占位符可以有多个
2,类型参数可以是编译器识别的任何类型
3,占位符的名字不能重名
接口
接口用interface关键字表示
可以存放成员: 属性 方法 事件 索引器
解决不能多重继承的问题
接口只负责类的声明 保证统一性
接口可以包含属性和方法的声明,但不能有字段
接口中的所有成员默认public,不能在访问修饰符
实现接口的任何类或者结构必须实现其所有成员方法
接口不能被直接实例化,可以通过子类简介实现、
类可以继承多个接口,也可以继承多个基类并实现一个或多个接口
可以继承多个接口,逗号隔开。需要实现所有继承接口的方法
一个子类在继承多个基类时 ,仍然可以继承接口
但是基类要放在继承的
*/
/*
接口和抽象类的相同点
1,都定义了一些未实现的属性和方法
继承他们的的类必须实现这些成员
2,都不能直接被实例化,都可通过子类间接实例化
3,都可以包含让相同子类继承时的抽象成员
不同点
抽象类中除了抽象成员还可以有非抽象成员
接口中只能包含抽象成员
2,抽象类中成员可以是私有的
接口中所有成员默认public
3, 接口中不能包含构造函数析构函数
静态成员和常量
4 一个类只有一个父类
接口可以有多个接口
接口也可以实现多个继承
* 泛型实现将类型作为参数
C#中的泛型可以把类型当做参数传递在定义时 ,用特殊符号表示
占位符来代替实际类型, 当这个类在实例化时就需要传入一个
实际类型,这样可以在外界控制参数类型、
优点:
1,使用泛型可以最大程度重用
保护类型 提高性能
2,降低强制类型装换 或装箱拆箱操作、
3,可以对泛型类型进行约束
缺点:
泛型成员类型不确定可能是类,结构体,所有不能使用算数运算符
比较运算符等
可以使用赋值运算符
//泛型类型的多参数
1,类型参数的占位符可以有多个
2,类型参数可以是编译器识别的任何类型
3,占位符的名字不能重名
约束泛型类型只能为引用类型 约束泛型类型只能为引用类型