1、Abstract:编程
abstract方法必须在abstarct类中声明,没有默认实现,子类必须实现。ide
2、Virtual:url
virtual方法能够声明在abstract类中,也能够声明在非abstarct类中,而且能够有默认实现。3d
3、Interface(接口)继承
接口的一些描述索引
1. 接口是一个引用类型,经过接口能够实现多重继承。
2. C#中接口不能有new、public、protected、internal、private等修饰符。
3. 接口中只能声明"抽象"成员(因此不能直接下一步对接口进行实例化(即不能使用new操做符声明一个接口的实例对 象)),而不能声明共有的域或者私有的成员变量。
4. 接口声明不包括数据成员,只能包含方法、属性、事件、索引等成员。
5. 接口成员的访问级别是默认的(默认为public),因此在声明时不能再为接口成员指定除public外的任何访问修饰符,不然 编译器会报错。
6. 接口成员不能有static、abstract、override、virtual修饰符,使用new修饰符不会报错,但会给出警告说不须要关键字new。
7. 在声明接口成员的时候,不许为接口成员编写具体的可执行代码,也就是说,只要在对接口进行声明时指明接口的成员名称和参数就能够了。
8. 接口一旦被继承,子类须要把接口中全部成员实例化(经过具体的可执行代码实现接口抽象成员的操做)。接口
(百度百科:http://baike.baidu.com/link?url=UlmCxkt6O7lqmGK4IdM5CmzwhK3nnEQmA3dCkh9I6-noq3GfVv-chDLIo3QMQYPlEo3Vv8PK8J2e9OidgP8Sta)事件
接口的意义v8
1. 接口一个比较经常使用的用法是声明一组行为方法,这组行为方法能够有不一样的实现和多个实现,而使用这组行为的类也只关心行为的声明。简单说就是定义了交互的契约。编译器
2. 面向接口编程,容易对应用系统进行分层,不一样层次之间使用接口进行交互。这有如下好处:层次职责清晰;容易作UT;容易解耦(DI,IoC)。
3. 能够实现多重继承。