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

相关推荐
new6669991 小时前
Java实现模版方法模式
java·设计模式
Strive_Sun1 小时前
Windows 下搭建 googletest 测试框架(C/C++)
c语言·开发语言·c++·windows
小禾苗_2 小时前
C++ ——基础进阶
开发语言·c++
别开生面的阿杰2 小时前
C++--iomanip库
开发语言·c++
羽觞醉月112 小时前
C++基础 | 线程`std::thread`
开发语言·c++·算法
不想编程小谭3 小时前
从小白开始的动态规划
c++·算法·动态规划
艾斯特_3 小时前
前端设计模式介绍及案例(单例模式、代理模式、工厂模式、装饰者模式、观察者模式)
前端·javascript·观察者模式·单例模式·设计模式
surtr13 小时前
【C++】RBTree(红黑树)模拟实现
数据结构·c++·算法·stl·map·红黑树·rbtree
zjkzjk77113 小时前
函数指针(Function Pointer)与 typedef int (*FuncPtr)(int, int);typedef与using(更推荐)
开发语言·c++·算法
余辉zmh3 小时前
【动态规划篇】:动态规划解决路径难题--思路,技巧与实例
c++·算法·leetcode·动态规划