C++(31)继承的概念

一、类之间的关系

(1)has:包含关系,用以描述一个类由多个“部件类”构成。实现has-A关系用类成员表示,即一个类中的数据成员是另一种已经定义的类
(2)use:一个类部分地使用另一个类。通过类之间成员函数的相互联系,定义友员或对象参数传递实现。
(3)is:机制称为“继承”。关系具有传递性,不具有对称性


二、继承关系

继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承类似,例如儿子继承父亲的财产。

继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。例如类 B 继承于类 A,那么 B 就拥有 A 的成员变量和成员函数。被继承的类称为父类或基类,继承的类称为子类或派生类

派生类除了拥有基类的成员,还可以定义自己的新成员,以增强类的功能。

以下是两种典型的使用继承的场景:
1) 当你创建的新类与现有的类相似,只是多出若干成员变量或成员函数时,可以使用继承,这样不但会减少代码量,而且新类会拥有基类的所有功能。

2) 当你需要创建多个类,它们拥有很多相似的成员变量或成员函数时,也可以使用继承。可以将这些类的共同成员提取出来,定义为基类,然后从基类继承,既可以节省代码,也方便后续修改成员。


三、继承概念

1、继承

  • 继承是使用已经编写好的类来创建新类,新的类具有原有类的所有属性和操作,也可以在原有类的基础上做一些修改和增补。
  • 新类称为派生类或者子类,原有类称为基类或父类
  • 派生类是基类的具体化

2、继承的语法声明
派生类(子类)的声明语法为:

class 派生类名:继承方式  基类名(父类名)
{
    派生类新增成员的声明;
}

3、继承的一些性质

  1. 子类拥有父类的所有成员变量和成员函数
  2. 子类可以拥有父类没有的方法和属性
  3. 子类就是一种特殊的父类
  4. 子类对象可以当作父类对象使用
示例程序

#include <iostream>

using namespace std;

class Animal
{
public:
    void init(int age, char *name)
    {
        this->age  = age;
        this->name = name;
    }

    // 吃饭
    void eat()
    {
        cout << "动物: " << name << "在吃饭" << endl;    
    }

    void sleep()
    {
        cout << "动物: " << name << "在睡觉" << endl;
    }

    void print()
    {
        printf("age = %d, name = %s\n", age, name);
    }
private:
    int age;
    char *name;
};

// 猫  继承动物  将继承动物的所有成员变量和成员函数
// A 继承 B : class A : 继承权限  继承的类  ====>   class A: public  B
// 被继承的类 B : 基类 或者  父类
// 继承的类   A : 派生类  或者  子类

// 派生类可以扩展自己的功能
class Cat : public Animal
{
public:
    void CatchM()
    {
        cout << "猫在捉老鼠" << endl;
    }
};

class Dog :public Animal  // fork
{
public:
    void lookHome()
    {
        cout << "狗在看家" << endl;
    }
};

int main()
{
    Animal a;
    a.init(10, "大熊猫");
    a.print();
    a.eat();
    a.sleep();

    Cat c;
    c.init(3, "波斯猫");
    c.print();
    c.eat();
    c.sleep();
    c.CatchM();

    Dog d;
    d.init(4, "哈士奇");
    d.print();
    d.eat();
    d.sleep();
    d.lookHome();

    return 0;
}


执行结果:
age = 10,name = 大熊猫
动物: 大熊猫在吃饭
动物: 大熊猫在睡觉
age = 3,name = 波斯猫
动物: 波斯猫在吃饭
动物: 波斯猫在睡觉
猫在捉老鼠
age = 4,name = 哈士奇
动物: 哈士奇在吃饭
动物: 哈士奇在睡觉
狗在看家
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值