【2】c++设计模式——>UML表示类之间的继承关系

继承 也叫作泛化 (Generalization),用于描述父子类之间的关系,父类又称为基类或者超类,子类又称作派生类。在UML中,继承关系用带空心三角形的实线来表示

关于继承关系一共有两种:普通继承关系和抽象继承关系,但是不论哪一种表示继承关系的线的样式是不变的。

假如现在我定义了一个父类(Bird)和两个子类(Cuckoo、Eagle):

cpp 复制代码
class Bird
{
public:
    string getName()
    {
        return m_name;
    }

    void setName(string name)
    {
        m_name = name;
    }

    virtual void fly() {}
    virtual void eat() {}
protected:
    string m_sex;
    string m_name;
};

class Cuckoo : public Bird
{
public:
    void fly() override
    {
        cout << "我拍打翅膀飞行..." << endl;
    }

    void eat() override
    {
        cout << "我喜欢吃肉肉的小虫子..." << endl;
    }
};

class Eagle : public Bird
{
public:
    void fly() override
    {
        cout << "我展翅翱翔..." << endl;
    }

    void eat() override
    {
        cout << "我喜欢吃小动物..." << endl;
    }
};

所以使用UML类图表示如下:

父类Bird中的fly()和eat()是虚函数,它有两个子类Cuckoo和Eagle,在这两个子类中重写了父类的虚函数,在使用带空心三角的实现表示继承关系的时候,有空心三角的一端指向父类,另一端连接子类。

相关推荐
_F_y20 小时前
C++异常
c++
小龙报20 小时前
《算法通关指南:算法基础篇 --- 一维前缀和 — 1. 【模板】一维前缀和,2.最大子段和》
c语言·数据结构·c++·算法·职场和发展·创业创新·visual studio
吃饺子不吃馅20 小时前
面试官:JWT、Cookie、Session、Token有什么区别?
前端·设计模式·面试
郝学胜-神的一滴21 小时前
Effective STL 第9条:C++容器元素删除技巧详解
开发语言·c++·程序人生·stl
Ma_Hong_Kai21 小时前
带复选框的combox
c++·mfc
syker21 小时前
太极指令集架构(TCIS)v1.1与主流指令集比较研究报告
c++·架构
leafff1231 天前
一文读懂:如何选择适合的RAG系统架构设计模式?
设计模式·自然语言处理·系统架构
jf加菲猫1 天前
第1章 认识Qt
开发语言·c++·qt·ui
ZHE|张恒1 天前
设计模式实战篇(一):彻底搞懂 Singleton 单例模式
单例模式·设计模式
蒋星熠1 天前
全栈开发实战指南:从架构设计到部署运维
运维·c++·python·系统架构·node.js·devops·c5全栈