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

相关推荐
xlq223223 小时前
22.多态(上)
开发语言·c++·算法
D_evil__4 小时前
[C++高频精进] 并发编程:线程基础
c++
Mr_WangAndy4 小时前
C++17 新特性_第二章 C++17 语言特性_std::any和string_view
c++·string_view·c++40周年·c++17新特性·c++新特性any
水天需0106 小时前
C++ 三种指针转换深度解析
c++
言言的底层世界7 小时前
c++中STL容器及算法等
开发语言·c++·经验分享·笔记
Mr_WangAndy7 小时前
C++17 新特性_第一章 C++17 语言特性___has_include,u8字符字面量
c++·c++40周年·c++17新特性·__has_include·u8字面量
liu****7 小时前
八.函数递归
c语言·开发语言·数据结构·c++·算法
Vanranrr8 小时前
C++临时对象与悬空指针:一个导致资源加载失败的隐藏陷阱
服务器·c++·算法
__万波__8 小时前
二十三种设计模式(二)--工厂方法模式
java·设计模式·工厂方法模式
BestOrNothing_20158 小时前
【C++基础】Day 5:struct 与 class
c++·c·class类·struct结构体·typename模板·private与public