你的位置:首页 > ASP.net教程

[ASP.net教程]抽象类和接口的区别比较


  在面向对象的概念中,抽象类和接口都是一种特殊的类,它们具有一些共性,也有一些区别。

  二者的相同点:

      都属于引用类型的数据,是一种特殊的类;

      都不能实例化;

      都可以包含未实现的方法声明和属性声明;

      两者的派生类都必须实现它们的声明,派生类实现抽象类的抽象属性和抽象方法,而接口则要实现它的所有成员

  二者的不同点:

      抽象类是由相似对象抽象而成的类,而接口是一个行为的规定或规范;

      一个类可以实现多个接口,但只能从一个基类(单继承的情况下)中派生;

      抽象类即包含了可变部分不可变部分,但是接口只定义了可变的部分;

     

   总的来说,抽象类是对根源的抽象,接口是对动作的抽象;抽象类表示这个对象是什么,接口表示这个对象能做什么;当关注一个事物的本质时,如要创建组件的多个版本,用抽象类,当关注功能操作的时候,如创建的功能要在所有对象中使用,则可以用接口。

 

 

 

参考: 《C#可视化编程技术》