第52课 C++中的抽象类和接口
什么是抽象类 面向对象中的抽象概念 在进行面向对象分析时,会发现一些抽象的概念 图形的面积如何计算? 在现实中需要知道具体的图形类型才能求面积,所以对概念上的图形求面积是没有意义的 class Shape { public: double area() { return 0; } }; Shape只是一个概念上的类型,没有具体的对象。 面向对象中的抽象类 -可用于表示 现实世界中的抽象概念 -是一种 只能定义类型,而不能产生对象的类 -只能被 继承并重写相关函数 -直接特征是 相关函数没有完整的实现 Shape是现实世界中各种图形的抽象概念 因此: -程序中必须能够反映抽象的图形 -程序中通过抽象类表示图形的概念 -抽象类不能创建对象,只能用于继承 抽象类与纯虚函数 C++语言中 没有抽象类 的概念 C++中通过 纯虚函数 实现抽象类 纯虚函数是指 只定义原型的成员函数 一个C++类中 存在纯虚函数 就成了抽象类 纯虚函数的语法规则 class Shape { public: virtual double area() = 0; }; "=0"用于告诉编译器当前是声明纯虚函数,因此不需要定义函数体 #include <iostream> #include <string> using namespace std; class Shape { public: virtual