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

接口继承和实现继承

        什么是接口继承和实现继承?

        在面向对象编程(OOP)中,接口继承(Interface Inheritance) 和 实现继承(Implementation Inheritance) 是两种不同的继承方式,它们的核心区别在于 继承的是行为约定还是具体实现。

接口继承实现继承
继承内容只继承方法的声明,不继承实现。

继承父类的实现

对象被继承对象为 抽象类 以及 接口通过普通类或虚函数实现
目的定义”能做什么“ (行为规范)

复用方法,复用代码逻辑,减少重复

子类责任必须实现所有抽象方法

根据动机选择性重写方法

耦合性低耦合高耦合
典型应用多态、插件架构、API设计代码复用

接口继承

// 接口(纯抽象类,只有方法声明)
class IShape {
public:virtual double area() const = 0;  // 纯虚函数,子类必须实现virtual void draw() const = 0;    // 无默认实现
};// 子类实现接口
class Circle : public IShape {
private:double radius;
public:Circle(double r) : radius(r) {}double area() const override {    // 必须实现return 3.14 * radius * radius;}void draw() const override {      // 必须实现std::cout << "Drawing a circle\n";}
};

实现继承

// 基类(包含默认实现)
class Animal {
public:virtual void speak() {  // 虚函数,有默认实现std::cout << "Animal sound\n";}void eat() {  // 非虚函数,直接继承std::cout << "Eating...\n";}
};// 子类选择性重写
class Dog : public Animal {
public:void speak() override {  // 重写父类实现std::cout << "Woof!\n";}// eat() 直接继承父类实现
};class Cat : public Animal {// 不重写 speak(),默认使用父类实现
};

http://www.xdnf.cn/news/10857.html

相关文章:

  • OpenCV CUDA模块霍夫变换------在 GPU 上执行概率霍夫变换检测图像中的线段端点类cv::cuda::HoughSegmentDetector
  • OpenCV 滑动条调整图像亮度
  • 相机camera开发之差异对比核查一:测试机和对比机的硬件配置差异对比
  • 国标GB28181设备管理软件EasyGBS视频平台筑牢文物保护安全防线创新方案
  • Unity 性能优化终极指南 — GameObject 篇
  • 从零开始,学会上传,更新,维护github仓库
  • KV Cache:大语言模型推理加速的核心机制详解
  • AD转嘉立创EDA
  • Mac电脑_钥匙串操作选项变灰的情况下如何删除?
  • 机器学习——使用多个决策树
  • 从仿射矩阵得到旋转量平移量缩放量
  • MySQL 全量、增量备份与恢复
  • HJ73 计算日期到天数转换
  • 解决MyBatis参数绑定中参数名不一致导致的错误问题
  • 剑指offer14_二进制中1的个数
  • 谷歌地图免费下载手机版
  • OpenLayers 地图标注之Popup标注
  • 符号执行与SemFix、DirectFix 、Angelix的主要思想
  • 【Bluedroid】蓝牙启动之sdp_init 源码解析
  • Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满!
  • SQL 筛选出在表1但不在表2中的数据
  • 消费者行为变革下开源AI智能名片与链动2+1模式S2B2C商城小程序的协同创新路径
  • 大模型:从基座构建到应用落地--预训练与后训练及个人解析-2025.6
  • 【原神 × 二分查找】找出圣遗物强化到暴击的最小尝试次数!
  • vLLM:让大语言模型推理更高效的新一代引擎 —— 原理详解一
  • String 学习总结
  • WPS 利用 宏 脚本拆分 Excel 多行文本到多行
  • 数据可视化有哪些步骤?2025高效落地指南
  • 机器学习与深度学习08-随机森林02
  • 记我的第一个深度学习模型尝试——MNIST手写数字识别