current position:Home>43 - The concept and meaning of inheritance

43 - The concept and meaning of inheritance

2022-11-24 22:40:00uwu16

---- 整理自狄泰软件唐佐林老师课程

1. 思考

Whether there is a direct relationship between the classes?

1.1 组合关系:整体与部分的关系

在这里插入图片描述

1.1.1 实例分析:组合关系的描述

#include <iostream>
#include <string>

using namespace std;

class Memory
{
    
public:
    Memory()
    {
    
        cout << "Memory()" << endl;
    }
    ~Memory()
    {
    
        cout << "~Memory()" << endl;
    }
};

class Disk
{
    
public:
    Disk()
    {
    
        cout << "Disk()" << endl;
    }
    ~Disk()
    {
    
        cout << "~Disk()" << endl;
    }   
};

class CPU
{
    
public:
    CPU()
    {
    
        cout << "CPU()" << endl;
    }
    ~CPU()
    {
    
        cout << "~CPU()" << endl;
    }    
};

class MainBoard
{
    
public:
    MainBoard()
    {
    
        cout << "MainBoard()" << endl;
    }
    ~MainBoard()
    {
    
        cout << "~MainBoard()" << endl;
    }    
};

class Computer
{
    
    Memory mMem;
    Disk mDisk;
    CPU mCPU;
    MainBoard mMainBoard;
public:
    Computer()
    {
    
        cout << "Computer()" << endl;
    }
    void power()
    {
    
        cout << "power()" << endl;
    }
    void reset()
    {
    
        cout << "reset()" << endl;
    }
    ~Computer()
    {
    
        cout << "~Computer()" << endl;
    }
};

int main()
{
       
    Computer c;
    
    return 0;
}

在这里插入图片描述

1.1.2 类之间的组合关系

  • 组合关系的特点:
    • 将其它类的对象作为当前类的成员使用
    • 当前类的对象与成员对象的生命期相同
    • 成员对象在用法上与普通对象完全一致

1.2 继承关系

在这里插入图片描述

  • 面向对象中的继承指类之间的父子关系:
    • 子类 拥有父类的 所有属性和行为
    • 子类就是 一种 特殊的父类
    • 子类对象 可以 as a parent class object 使用
    • 子类中 可以添加 Methods and properties that the parent class does not have

1.2.1 C++The code form describing the inheritance relationship in

在这里插入图片描述

1.2.2 编程实验:Inherit the first experience

#include <iostream>
#include <string>

using namespace std;

class Parent
{
    
    int mv;
public:
    Parent()
    {
    
        cout << "Parent()" << endl;
        mv = 100;
    }
    void method()
    {
    
        cout << "mv = " << mv << endl;
    }
};

class Child : public Parent
{
    
public:
    void hello()
    {
    
        cout << "I'm Child calss!" << endl;
    }
};

int main()
{
       
    Child c;
    
    c.hello();
    c.method();
    
    return 0;
}

在这里插入图片描述

1.2.3 重要规则

  • 子类就是 A special parent class

  • 子类对象可以 直接初始化 父类对象

  • 子类对象可以 直接赋值 to the parent object

在这里插入图片描述

1.2.4 继承的意义

  • 继承是C++中代码复用的重要手段

  • 通过继承,可以 获得父类的所有功能,并且可以 在子类中 Override existing functionality 或者 添加新功能

2. 小结

  • 继承是面向对象中类之间的一种关系

  • 子类拥有父类的所有属性和行为

  • 子类对象可以作为父类对象使用

  • 子类中可以添加Methods and properties that the parent class does not have

  • 继承是面向对象中代码复用的重要手段

copyright notice
author[uwu16],Please bring the original link to reprint, thank you.
https://en.chowdera.com/2022/328/202211242224142509.html

Random recommended