【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,在这两个子类中重写了父类的虚函数,在使用带空心三角的实现表示继承关系的时候,有空心三角的一端指向父类,另一端连接子类。

相关推荐
曦樂~2 分钟前
【C++11】引用折叠原理
开发语言·c++
lucky_dog16 分钟前
C语言——交换数组元素🍀🍀🍀
c++
雨中飘荡的记忆19 分钟前
设计模式之原型模式详解
设计模式·原型模式
Mr_WangAndy31 分钟前
C++23新特性_if consteval
c++·c++23·c++40周年·if consteval
落羽的落羽36 分钟前
【Linux系统】初探 虚拟地址空间
linux·运维·服务器·c++·人工智能·学习·机器学习
Drone_xjw39 分钟前
【CPP回调函数】以无人机系统为例梳理回调函数使用
c++·无人机
liu****40 分钟前
11.字符函数和字符串函数(二)
c语言·开发语言·数据结构·c++·算法
@小白鸽40 分钟前
1.2.1创建型设计模式
开发语言·设计模式
Tandy12356_40 分钟前
手写TCP/IP协议栈——以太网数据包处理
网络·c++·网络协议·tcp/ip
郝学胜-神的一滴1 小时前
Linux中的alarm函数详解:定时器信号处理指南
linux·服务器·开发语言·c++·程序人生