首页 > 其他分享 >继承和派生

继承和派生

时间:2022-12-30 11:55:06浏览次数:36  
标签:派生 继承 成员 基类 class 对象 派生类 public

概念

继承:在定义一个新类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点)那么就可以把A作为一个基类,而把B类作为基类的一个派生类(子类)

  • 派生类是通过对基类进行修改和扩充得到的。在派生类中,可以扩充新的成员变量和成员函数
  • 派生类一经定义后,可以独立使用,不依赖于基类
  • 派生类拥有基类的全部成员函数和成员变量,不论是private、protected、public
  • 在派生类的各个成员函数中,不能访问基类中的private成员
  • 派生类对象的体积等于基类对象的体积再加上派生类对象自己的成员变量的体积。在派生类对象中,包含着基类对象
class 派生类名:public 基类名
{};
class CStudent
{
    private:
        string sName;
        int nAge;
    public:
        bool IsThreeGood(){};
        void SetName(const string & name)
        {
            sName = name;
        }
};

class CUndergraduateStudent:public CStudent
{
    private:
        int nDepartment;
    public:
        //覆盖
        bool IsThreeGood(){};
        bool CanBaoYan(){};
};

继承关系和复合关系

  • 继承关系是是关系, 复合关系是有关系

覆盖

派生类可以定义一个和基类成员同名的成员,这叫覆盖,在派生类中访问这类成员时,缺省的情况时访问派生类中定义的成员。要在派生类中访问基类定义的同名成员时,要使用作用域符号::

类的保护成员:protected
比privat多一个派生类的成员函数可以访问

公有继承的赋值兼容规则

class base{};
class derived:public base{};
base b;
derived d; 

派生类的对象可以赋值给基类对象

b = d

派生类对象可以初始化基类引用

base &br = d;
> 派生类对象的地址可以赋值给基类指针

标签:派生,继承,成员,基类,class,对象,派生类,public
From: https://www.cnblogs.com/cxy8/p/17014537.html

相关文章

  • call的使用方法,在es6没有extents继承属性之前用call借用父构造函数的继承属性
    call的使用方法,在es6没有extents继承属性之前用call借用父构造函数的继承属性1.call能改变this的指向, 父构造函数的函数名.call(改变this的指向,继承父构造函数的name,继承......
  • Java面向对象:子类与继承
    今天听java课程感觉难度突然增加,因此注意上课记录关键笔记,提醒自己回顾。JAVA子类与继承子类与父类问题:哪些父类的变量与方法可被子类继承?与访问权限有关前提知识:jav......
  • 组合优于继承的理解
    前言首先,广为流传的“组合优于继承”的说法是一种不严谨的翻译,其来源如下:(众多设计模式强调的两个个最核心原则《DesignPatterns:ElementsofReusableObject-Oriented......
  • 第一百一十八篇: JavaScript 原型链式继承
    好家伙,好家伙,本篇为《JS高级程序设计》第八章“对象、类与面向对象编程”学习笔记 1.原型链原型链是JS实现"继承"的方案之一ECMA-262把原型链定义为ECMAScript的主要......
  • 父类中可继承方法在处理private的一个demo
     publicabstractclassAbstractParent{publicAbstractParent(){System.out.println("Hello,parent");}protectedvoidearnMoney(){pre......
  • 面试官:你说说 js 中实现继承有哪几种方法?
    前言面试官:“你说说JavaScript中实现继承有哪几种方法?”紧张的萌新:“额,class中用extends实现继承,然后...没了...”面试官:“...”······大家好,我是CoderBin,......
  • 极客编程python入门-多重继承
    多重继承通过多重继承,一个子类就可以同时获得多个父类的所有功能。Python自带的很多库也使用了MixIn。举个例子,Python自带了​​TCPServer​​和​​UDPServer​​这两类网......
  • ts13_继承
    (function(){//定义一个dog类classAnimal{name:string;age:number;constructor(name:string,age:number){......
  • 继承
    方法的重写是指子类出现和父类一样的方法@override可以用来检验方法的重写父类的私有方法不能被重写子类的访问权限一定要比父类高,public>默认>私有java类中只支持单......
  • JS寄生组合式继承的实现
     /***对传入的对象进行一次浅复制*(将被传入的对象复制给这个构造函数的原型)*/functionobject(o){functionF(){}F.prototype=o;returnnewF();......