美文网首页c++回顾
C++----接口(抽象类)

C++----接口(抽象类)

作者: 徐大哈_401d | 来源:发表于2018-05-08 17:33 被阅读13次

接口描述了类的行为和功能,而不需要完成类的特定实现。

C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。

如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的,如下所示:

设计抽象类(通常称为 ABC)的目的,是为了给其他类提供一个可以继承的适当的基类。抽象类不能被用于实例化对象,它只能作为接口使用。如果试图实例化一个抽象类的对象,会导致编译错误。

因此,如果一个 ABC 的子类需要被实例化,则必须实现每个虚函数,这也意味着 C++ 支持使用 ABC 声明接口。如果没有在派生类中重载纯虚函数,就尝试实例化该类的对象,会导致编译错误。

可用于实例化对象的类被称为具体类

示例:

Total Rectangle area: 35   Total Triangle area: 17

设计策略

面向对象的系统可能会使用一个抽象基类为所有的外部应用程序提供一个适当的、通用的、标准化的接口。然后,派生类通过继承抽象基类,就把所有类似的操作都继承下来。

外部应用程序提供的功能(即公有函数)在抽象基类中是以纯虚函数的形式存在的。这些纯虚函数在相应的派生类中被实现。

这个架构也使得新的应用程序可以很容易地被添加到系统中,即使是在系统被定义之后依然可以如此。

相关文章

  • C++----接口(抽象类)

    接口描述了类的行为和功能,而不需要完成类的特定实现。 C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,...

  • 5.5-全栈Java笔记:接口的定义和使用

    接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类...

  • 建造者模式

    建造者抽象类或接口 建造者抽象类或接口实现类 产品抽象类或接口 产品抽象类或接口实现类 使用

  • 代理(委托)模式

    主题抽象类或接口 主题抽象类或接口实际类 主题抽象类或接口代理类 使用

  • 访问者模式

    元素抽象类或接口 元素抽象类或接口实现类 访问者抽象类或接口 访问者抽象类或接口实现类 场景使用

  • Java 接口 抽象类 枚举

    接口 使用接口对行为进行抽象 接口: 抽象类 抽象类是用来捕捉子类的通用特性的,包括属性及行为。 抽象类: 抽象类...

  • 抽象类与接口

    抽象类 一般将父类定义为抽象类。语法如下 接口 接口简介 接口是抽象类的延伸,可以将它看作是纯粹的抽象类,接口中的...

  • 技术问 - 抽象类与接口有什么异同

    抽象类与接口的不同 抽象类与接口的相同

  • 夯实Java基础系列6:一文搞懂抽象类和接口,从基础到面试题,揭

    目录 抽象类介绍为什么要用抽象类一个抽象类小故事一个抽象类小游戏 接口介绍接口与类相似点:接口与类的区别:接口特性...

  • Android面试一问一答:接口与抽象类

    接口与抽象类有什么不同 接口可以多实现;抽象类只能单继承。 接口中只有常量;抽象类可以有自己的成员变量。 抽象类的...

网友评论

    本文标题:C++----接口(抽象类)

    本文链接:https://www.haomeiwen.com/subject/umywrftx.html