2007 IT salary benchmarks in Asia

作者PeterXu 来源:Blog.CSDN Blog: http://blog.csdn.net/peterreg/
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址:http://blog.csdn.net/peterreg/archive/2008/04/03/2248643.aspx

接口和抽象类是面向对象语言(C++/C#/JAVA等)提供的一种抽象和封装机制,在某种情况下,抽象类和接口之间可以互用,但从语言和技术角度来分析,两者之间既有相同也有不同。两者在软件架构和设计模式中有着相当重要的作用,扮演着重要的角色。

相同:

1.两者都是一种抽象机制,都不能创建具体的对象,都要通过继承来实现它的方法

2. OO的基础,在软件层次和设计模式上有大量的应用

不同:

1. 抽象类描述的是一种"is a"的关系,即派生类是一种基类或抽象类
接口则表示一种契约,表明类具有什么功能,是一种"Can do"的关系

2. 抽象类既可以有没实现的抽象成员,也可以有具体的成员
接口只是一种抽象,没有具体的实现

3. 抽象类不支持回调
接口支持回调

4. 抽象类只支持单重继承
接口支持多重继承,一个类只能派生于一个基类,但可以实现多个接口

在具体的编程中,基于“面向接口编程”的理念,我们一般采用抽象类实现接口,实体类派生于抽象类。
在我的前几篇文章中基本上都可以看到接口的抽象类的应用。

实践中领悟理论是最好的方法!



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2248643


你可能感兴趣的:(设计模式,编程,Blog,OO,出版)