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

相关推荐
2501_9411115210 分钟前
C++中的适配器模式
开发语言·c++·算法
2501_9411119410 分钟前
C++中的适配器模式变体
开发语言·c++·算法
明洞日记12 分钟前
【设计模式手册008】适配器模式 - 让不兼容的接口协同工作
java·设计模式·适配器模式
2501_9411117735 分钟前
C++代码移植性设计
开发语言·c++·算法
yy_xzz1 小时前
【OpenCV + VS】C++实现动态下雪特效
c++·人工智能·opencv
橘子真甜~1 小时前
C/C++ Linux网络编程5 - 网络IO模型与select解决客户端并发连接问题
linux·运维·服务器·c语言·开发语言·网络·c++
2501_941111462 小时前
C++中的原型模式
开发语言·c++·算法
慢慢向上的蜗牛3 小时前
微软vcpkg包管理工具如何使用?
c++·microsoft·vcpkg·跨平台编译
wangjialelele3 小时前
详解mysql命令行操作与语言链接
c语言·数据库·c++·mysql·oracle
乂爻yiyao3 小时前
设计模式思想——从单例模式说起
java·单例模式·设计模式