C#接口 泛型

接口

接口用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,占位符的名字不能重名

约束泛型类型只能为引用类型 约束泛型类型只能为引用类型

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值