面试题-抽象类与接口的区别

一、从两者形态来区分

  A 抽象类可以给出一些成员的实现,接口则不可以给出成员的实现。

  B 抽象类的成员可以被子类部分实现,接口的成员则需要实现类全部实现。

  C 一个类只能继承一个抽象类,但可以实现多个接口。

二、从设计角度来区分

  A 类是对对象的抽象,抽象类是对类的抽象,接口是行为的抽象。

  B 如果行为跨越不同类型的对象,可以使用接口。对于一些相似的类对象,可以用继承抽象类。

  C 抽象类是从子类中发现了公共的东西,泛化出父类,然后子类继承父类,而接口根本就不知道子类的存在,方法如何实现还不确定。抽象类往往是通过重构得来的。抽象类一般是自底向上抽象出来的,接口则是自顶向下设计出来的。

三、关于抽象类和接口的选择

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

posted on 2013-04-12 23:13  396360535  阅读(119)  评论(0)    收藏  举报