接口与抽象类

今天温习了一下C#高级编程第四章关于接口的内容,顺便学习抽象类相关知识,在此做了一个总结,加深理解。具体要怎么去运用以及代码明天在补上

抽象类:
1. 抽象方法只作声明, 而不包含实现.
2. 抽象类不能被实例化. 除此以外, 具有类的其他特征.
3. 抽象类可以包含非抽象的属性和方法, 但是抽象方法必须放在抽象类中.
4. 派生类必须覆盖基类的抽象方法
5. 抽象类可以派生自另一个抽象类。

接口:
1. 接口是引用类型
2. 不能被实例化
3. 只能包含实现的方法声明, 不能包含实现其成员的任何代码, 实现过程必须在实现接口的类中实现.
4. 一个类可以支持多个接口, 多个类也可以支持相同的接口.
5. 派生类必须实现接口的所有成员.
6. 接口中的所有成员默认为public, 接口中不能有private修饰符.
7. 接口中可以包含: 方法, 属性, 索引器, 事件
8. 接口中不能包含: 常量, 字段(域), 构造函数, 析构函数, 静态成员.

抽象类和接口的相同点:
1. 都可以被继承
2. 都不能被实例化
3. 都可以包含方法声明
4. 派生类必须实现未实现的方法.

抽象类和接口的区别:
1. 抽象类是一个不完整的类, 需要进一步细化, 而接口只是一个行为的规范或规定
2. 抽象基类可以定义字段,属性,和方法实现. 接口只能定义属性, 索引器, 事件和方法声明, 不能包含字段.
3. 接口可以被多重实现, 抽象类只能被单一继承.
4. 抽象类更多的是定义在一系列紧密相关的类之间, 而接口大多数是定义在关系疏松,但都实现某一功能的类中.

总结到此,有些还是不太理解。都是概念性的东西,明天还得实践加深理解

posted @ 2009-09-14 18:27  Sissynong  阅读(166)  评论(0编辑  收藏  举报