当前位置: 首页 > wzjs >正文

辽宁省建设工程信息网诚信库seo排名课程咨询电话

辽宁省建设工程信息网诚信库,seo排名课程咨询电话,用凡科做的手机网站版,设计制作简单的手机网站接口类 和 抽象类,确实有很多人容易混淆,今天我就一次性帮你彻底搞懂这两个概念,以及为什么要继承! 🌳 1️⃣ 什么是接口类?什么是抽象类? 分类接口类 (Interface)抽象类 (Abstract Class)定义…

接口类抽象类,确实有很多人容易混淆,今天我就一次性帮你彻底搞懂这两个概念,以及为什么要继承


🌳 1️⃣ 什么是接口类?什么是抽象类?

分类接口类 (Interface)抽象类 (Abstract Class)
定义只包含纯虚函数(没有实现)至少包含一个纯虚函数,可以有部分实现
目的只定义规范,不实现逻辑定义规范 + 可以提供部分实现
成员变量没有(通常不应该有)可以有成员变量和普通成员函数
典型例子class IShape { virtual void draw() = 0; };class Shape { virtual void draw() = 0; void move() {}; };
是否必须继承✅ 必须继承并实现✅ 必须继承并实现纯虚函数
特点类似于纯接口类似于半成品,可以扩展

举例 1:接口类

// 接口类:完全定义规范,不写实现
class IShape {
public:virtual void draw() = 0; // 纯虚函数virtual ~IShape() {}     // 虚析构
};

必须继承它才能用:

class Circle : public IShape {
public:void draw() override { qDebug() << "Draw Circle"; }
};

举例 2:抽象类

class Shape {
public:virtual void draw() = 0; // 抽象函数void move() { qDebug() << "Move shape"; } // 已实现
};

抽象类可以提供一部分公共实现(如 move()),子类继承后可以直接用。


🏗️ 2️⃣ 为什么必须继承它们?

因为:

  • 接口类抽象类只是“模板”/“规范”,没有完整实现,不能直接创建对象

  • 编译器禁止实例化(new)它们。

举例:

IShape shape; // ❌ 错误,不能创建接口类对象
Shape shape;  // ❌ 错误,不能创建抽象类对象

你必须 继承 + 实现纯虚函数,才能使用:

class Circle : public IShape {void draw() override { qDebug() << "Draw Circle"; }
};Circle c; // ✅ OK

🧭 3️⃣ 接口类 vs. 抽象类 - 什么时候用?

你要做什么?选哪个?举例
定义一个“规范”,子类必须遵循,且不需要公共代码接口类IDrawable, ISerializable
定义一个“规范”,但有些通用代码可以共享抽象类QWidget, QThread(部分实现)
已有完整实现,不需要额外规范具体类QTimer, QList

🏆 4️⃣ 总结

接口类 = 纯虚函数集合,只定义规范,不提供实现。
抽象类 = 至少有一个纯虚函数,可以提供部分实现
✅ 使用它们时,必须 继承并实现所有纯虚函数 才能创建对象。
✅ 目的是:面向接口编程,让代码更灵活、可扩展。


🎓 5️⃣ 举个生活中的例子

角色接口类抽象类具体类
概念会飞的东西(不能直接用)飞行工具(有一些基本结构,但不能直接买)一架飞机(可以买来用)
类比IFlyableAircraftBoeing737
特点只定义规范有些实现全部实现
代码virtual void fly() = 0;virtual void fly() = 0; void refuel() {}void fly() override {}

如果你有实际代码场景(比如某个类不知道该不该继承),发给我,我们一起看看! 🚀


文章转载自:

http://yiWqNeqh.krjrb.cn
http://Tyk3lyDe.krjrb.cn
http://1SwmsCY5.krjrb.cn
http://TOndVDLA.krjrb.cn
http://agTCRTLR.krjrb.cn
http://AgLRotqx.krjrb.cn
http://s8Y2vlhA.krjrb.cn
http://xmhm9tQr.krjrb.cn
http://23I6zMsZ.krjrb.cn
http://q1DSSJ49.krjrb.cn
http://AcxWNIbk.krjrb.cn
http://8LyTRCSt.krjrb.cn
http://WfRNLLii.krjrb.cn
http://qLRdOeb7.krjrb.cn
http://Ysb9qxpw.krjrb.cn
http://pfb8KQq1.krjrb.cn
http://B6uwneC3.krjrb.cn
http://0eYX2cRI.krjrb.cn
http://lxxrYbOL.krjrb.cn
http://ABQSFQOi.krjrb.cn
http://fqXxylnY.krjrb.cn
http://ScWrQqEU.krjrb.cn
http://YfJtUdnY.krjrb.cn
http://3auGTbqz.krjrb.cn
http://kI6ed98z.krjrb.cn
http://pB2Qafc6.krjrb.cn
http://K8RN7Fi4.krjrb.cn
http://Di5h9coE.krjrb.cn
http://IvOo4wrj.krjrb.cn
http://GpPqHSir.krjrb.cn
http://www.dtcms.com/wzjs/659379.html

相关文章:

  • 网站建站公司哪家好购物网站主要的功能模块
  • 网站建设培训ppt淮安网站建设价位
  • 人力资源网站建设可以自己做斗图的网站
  • 顺德高端网站建设百度热搜榜单
  • cf小号自助购买网站竞价托管资讯
  • c 网站建设大作业代码珠海品牌设计公司
  • 做最好的网站新新cn体育门户网站源码(asp
  • 河北网站建设搭建iis7 wordpress伪静态规则
  • 网站的容量网页制作是干嘛的
  • 网站建设的个人条件网络工程师
  • 门户网站建设工作情况汇报wordpress 遍历分类
  • 响应式网站建设新闻建设银行手机银行网站用户名
  • 网站建设怎么加音乐wordpress迁移修改域名
  • 网站开发团队介绍深圳网络推广系统
  • 网站备案 免费在哪里可以做企业官网
  • php网站开发编程软件西安网站 建设
  • 太原便宜做网站的公司电子商务网站建设维护实训报告
  • 佛山智家人网站西安网站建立
  • 广西网站设计服务企业网站建设课程体会
  • 包头网站设计推广中国最大的编程公司
  • 泰顺网站建设商业网站怎么建设
  • 太原网站制作费用滨州住房和城乡建设部网站
  • 无锡网站建设公司排名月付网站空间提供商
  • 黄江仿做网站城市建设网站鹤岗市
  • 甘肃建设厅网站怎么做跳转不影响原网站排名
  • 商务网站建设策略做网站需要买
  • 微信做代理的网站高端网站鉴赏
  • 深圳搭建p2p网站用asp做网站优势
  • 西安公司做网站台州网站设计开发
  • 江苏省公路与水路建设网站html网页制作案例