• 接口、抽象类


    1.概念

    接口是一组行为规范(实际就是虚方法的抽象类型),其中每一个方法都有其名称、参数、返回值。

    接口方法不能包含任何实现。

    一个类可以实现多个接口,当一个类继承某个接口时,不仅要实现接口定义的功能,还要实现接口继承其他接口中的功能。

    抽象类是多个派生类共享基类的公共定义,它不仅可以提供抽象类,也可以提供非抽象类。抽象类不能被实例化,必须通过继承由派生类实现其抽象方法,如果派生类中没有完全实现父类的抽象方法,则派生类也需要定义为抽象类。

    2.相同点、不同点

    相同点:都不可以被实例化,需要派生类实现其抽象方法。

    不同点:

    a.(定义)接口是一组行为规范;抽象类是一个不完全的类。

    b.(实现)接口支持多继承,抽象类不支持多继承;接口支持回调,抽象类不支持。

    c..(内部部分)接口只能定义规则;抽象类不仅可以定义规则,还可以有实现的成员。

    3.应用场景:

    MSDN这样建议

    1.         如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单易行的方法来控制组件版本。通过更新基类,所有继承类都随更改自动更新。另一方面,接口一旦创建就不能更改。如果需要接口的新版本,必须创建一个全新的接口。

    2.         如果创建的功能将在大范围的全异对象间使用,则使用接口。抽象类应主要用于关系密切的对象,而接口最适合为不相关的类提供通用功能。

    3.         如果要设计小而简练的功能块,则使用接口。如果要设计大的功能单元,则使用抽象类

    4.         如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。抽象类允许部分实现类,而接口不包含任何成员的实现。

  • 相关阅读:
    ZCMU训练赛-H(模拟)
    ZCMU训练赛-B(dp/暴力)
    ZCMU训练赛-A(模拟)
    HDU 2045 LELE的RPG难题(递推)
    HDU 2044 一只小蜜蜂(递归)
    HDU 2050 折线分割平面(转)
    对递归的理解归纳(转)
    漫谈递归思想(转)
    2017中南大学暑期集训day1 : debug&STL-A
    探寻宝藏--河南省第六届大学生程序设计竞赛
  • 原文地址:https://www.cnblogs.com/mili3/p/7611994.html
Copyright © 2020-2023  润新知