如何实现接口继承与实现继承的区别?

embedded/2024/12/21 1:56:55/

接口继承

接口继承是指子类只继承基类的纯虚函数,即只继承基类的接口,而不继承基类的实现,子类必须实现基类中的所有纯虚函数,否则子类也成为抽象类

#include<iostream>
using namespace std;
// 纯虚类,用作接口
class Shape {
public:virtual ~Shape() = default;//显式地使用= default来指定默认析构函数virtual void draw() const = 0;  // 纯虚函数,派生类必须实现
};class Circle : public Shape {
public:void draw() const  {// Circle 特有的实现std::cout << "Drawing Circle" << std::endl;}
};
int main() {Shape* s = new Circle();s->draw();
}

实现接口

实现继承是指子类不仅继承基类的接口,还继承基类的实现,子类可以重写基类的函数,也可以直接使用基类的函数实现

#include<iostream>
using namespace std;
// 纯虚类,用作接口
class Shape {
public:virtual ~Shape() = default;// 提供默认实现virtual void draw() const {std::cout << "Drawing a generic shape" << std::endl;}
};class Circle : public Shape {
public:void draw() const override {// 调用基类实现,避免重复代码Shape::draw();std::cout << "Specifically drawing a circle" << std::endl;}private:double radius = 1.0;
};
int main() {Circle c;Shape& s = c;s.draw();return 0;
}

应用场景

接口继承:适用于定义一组通用的接口,让不同的类实现这个接口,以实现多态性,例如,在图形绘画系统中,可以定义一个抽象的图形接口类,让不同的具体图形实现这个接口

实现继承:适用于已有类的基础上进行扩展和修改,继承基类的实现可以减少代码的重复。


http://www.ppmy.cn/embedded/147410.html

相关文章

方正畅享全媒体新闻采编系统 reportCenter.do SQL注入漏洞复现

0x01 产品简介 方正畅享全媒体新闻生产系统是以内容资产为核心的智能化融合媒体业务平台,融合了报、网、端、微、自媒体分发平台等全渠道内容。该平台由协调指挥调度、数据资源聚合、融合生产、全渠道发布、智能传播分析、融合考核等多个平台组成,贯穿新闻生产策、采、编、发…

《Posterior Collapse and Latent Variable Non-identifiability》

看起来像一篇很有用的paper&#xff0c;而且还是23年的 没看完 后边看不懂了 Abstract 现有的解释通常将后验崩塌归因于由于变分近似而使用神经网络或优化问题。 而本文认为后验崩塌是潜在变量不可识别性的问题(a problem of latent variable non-identifiability) 本文证明了…

“返家乡”高校暑期社会实践微信小程序设计与开发ssm+论文源码调试讲解

第二章 开发环境 对高校暑期社会实践微信小程序进行开发&#xff0c;需要了解开发技术的理论与实际运用&#xff0c;对开发工具&#xff0c;尤其是数据库的使用方法需要进行掌握。 2.1 SSM框架 SSM框架不是一个框架的名称&#xff0c;而是三个框架的首字母缩写&#xff0c;分…

前端之HTML光速入门

一、HTML基础 &#xff08;1&#xff09;什么是HTML HTML(Hyper Text Markup Language),超文本标记语言. 超文本:比文本更强大.通过链接和交互式方式来组织和呈现信息的文本形式.不仅仅有文本,还可能包括图片,音频,或者自己经审阅过它的学者所加的评注,补充或脚注等. 标记语…

http的MIME类型

在 HTTP 协议中&#xff0c;MIME 类型&#xff08;Multipurpose Internet Mail Extensions&#xff09;用于描述传输内容的类型和格式。MIME 类型通过 Content-Type 头字段来指定&#xff0c;告知客户端如何处理和显示接收到的数据。 常见的 MIME 类型 以下是一些常见的 MIME…

华为认证HCIA——网络基本概念

前言&#xff1a; 整理下最近的学习笔记&#xff0c;打好基础&#xff0c;daydayup!!! 什么是HCIA HCIA&#xff0c;全称HUAWEI Certified ICT Associate&#xff0c;是华为认证ICT工程师&#xff08;ICT&#xff0c;information and communications technology&#xff0c;信息…

利用Java获取淘宝商品详情API接口的深入指南引言

引言 在电商领域&#xff0c;数据的价值日益凸显&#xff0c;尤其是在淘宝这样的大型电商平台上。淘宝商品详情API接口允许开发者通过编程方式获取商品的详细信息&#xff0c;这对于市场分析、竞争对手研究等方面至关重要。本文将详细介绍如何使用Java编写爬虫程序&#xff0c…

手机无法连接电脑,如何解决(快速排除手机与电脑连接问题的方法)

当您的手机无法连接到电脑时&#xff0c;这可能会让人感到沮丧。传输数据、故障排除或更新设备都变得困难重重。为了解决这一难题&#xff0c;整理了 15 个实用技巧&#xff0c;涵盖从检查连接到更新驱动程序等各个方面。本文将逐一介绍这些技巧&#xff0c;帮助您快速解决手机…