Just For Me

博客园 首页 新随笔 联系 订阅 管理

抽象类提供了更灵活的实现手段,扩展性也更好;

而接口解决的是按照合同办事,强调对象的行为。

从面向抽象的角度来说,二者有重叠但是面向角度不同。
在不同的应用场合,各有利弊,也各有用途。例如抽象类偏向属性,而接口强调行为;抽象类容易扩展,而接口职责单一,不易扩展;抽象类经常面向于数据集内部,而接口经常用于不同数据集的交互。

 

抽象类和接口的使用: 1. 如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单的方法来控制组件版本。 2.如果创建的功能将在大范围的全异对象间使用,则使用接口。如果要设计小而简练的功能块,则使用接口。 3.如果要设计大的功能单元,则使用抽象类.如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。 4.抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。

 

 以下是我在网上看到的几个形象比喻,真的非常不错,呵呵: 1.飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类。 2. 就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);而且只能是门,你不能说它是窗(单继承);一个门可以有锁(接口)也可以有门铃(多实现)。 门(抽象类)定义了你是什么,接口(锁)规定了你能做什么(一个接口最好只能做一件事,你不能要求锁也能发出声音吧(接口污染))。

 

Visual Studio 2005, 自带的类关系图,操作办法为:
1 在解决方案上,选择“查看类关系图”,可以查看当前解决方案中的类关系图;
2 在添加“新建项”中,可以选择新建“类关系图”选项来新建。

 

 

posted on 2010-09-16 13:09  JunjieChang  阅读(722)  评论(0编辑  收藏  举报