首页 > 代码库 > 对接口编程:接口和抽象类

对接口编程:接口和抽象类

    在《大话设计模式》这本书中,我会听到这个字眼“对接口编程”,而在文中的类图中,会提出这样一个疑问?为什么有的用的是:接口?有的用的是抽象类呢?

    本文主要介绍以下内容:接口、抽象类。

    文章的最后,会给出软考下午设计模式题中的一些做题技巧


什么是接口?
    接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR 允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。
    注意:一个类可以实现多个接口,当一个类继承某个接口时,它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中继承的所有方法。


? 什么是抽象类?
    抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new 关键字,也不能被密封。如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类。


对比分析



考试秘籍

  下面从软考设计模式的做题技巧入手,提供一些参考:(以Java语言为例)

抽象类用关键字abstract声明,用extends继承。抽象类的目的是定义一个框架,规定某些类必须具有的一些共性。抽象方法:没有函数体的方法

  注意包含抽象方法的类,一定是抽象类。

       抽象类的直接派生类必须实现其抽象方法,抽象类只能用于继承,不能用于创建对象(所谓的new)。


接口用关键字interface声明,关键字implements实现。接口用于替代多继承的概念。

  注意:直接继承了接口的类,必须实现接口中的抽象方法;间接的则可以实现,也可以不实现。


区分:

  1、接口和抽象类都不能创建对象。

  2、抽象类不能参与多继承,抽象类可以有非静态的成员变量,可以有非抽象的方法;

  3、接口可以参与多继承,所有的属性都是静态常量,所有的方法都是public方法。


结论
    本文基本概况了接口和抽象类的概念、异同和使用规则。但是,对于面向对象和软件设计的深入理解,还是建立在不断实践的基础上。