程序接口
面向对象通过
解耦
实现,为外部
对象提供提供一个适当,通用,标准化的接口,派生类通过继承抽象基类,就把通用规范
都继承下来本质还是
抽象-封装-分离-独立
程序之间整合
思想
- 解耦是目的, 而程序
封装
和程序接口
是必要手段 - 接口为程序层序提供
核心特性
重写,模式如果你规范于XX接口……则必须能……
- 接口为程序层序提供
独立并行
开发,只需
考虑协议,设计合理,自成体系
的接口多实现
/* C++:抽象(接口)类 */
#include <iostream>
using namespace std;
// 基类
class Shape
{
public:
// 提供接口框架的纯虚函数
virtual int getArea() = 0;
public:
void setWidth(int w)
{
width = w;
}
void setHeight(int h)
{
height = h;
}
protected: //程序封装
int width;
int height;
};
// 派生类
class Rectangle: public Shape
{
public:
int getArea() //接口实现1
{
return (width * height);
}
};
class Triangle: public Shape
{
public:
int getArea() //接口实现2
{
return (width * height)/2;
}
};
int main(void)
{
Rectangle Rect;
Triangle Tri;
Rect.setWidth(5);
Rect.setHeight(7);
// 输出对象的面积
cout << "Total Rectangle area: " << Rect.getArea() << endl;
Tri.setWidth(5);
Tri.setHeight(7);
// 输出对象的面积
cout << "Total Triangle area: " << Tri.getArea() << endl;
return 0;
}
- 定义一个纯虚函数,不代表函数
为
不被实现
的函数 - 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数
重写
- 定义一个纯虚函数,才代表函数
还没有
被实现 - 定义纯虚函数是为了实现一个
接口
,起到一个规范的作用,规范继承这个类的程序必须
实现这个函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?