`

继承成员变量和函数的特点

阅读更多
继承成员变量和函数的特点

变量
如果子类中出现非私有的同名成员变量,子类要访问
本类中的变量,用this。访问父类同名变量用super。

super的使用和this的使用几乎一致。
this代表的是本类对象的引用。
super代表的是父类对象的引用。

函数
当子类出现和父类一模一样的函数时,子类对象调用
该函数,会运行子类函数内容。如同父类函数被覆盖一样。
这种情况是函数的另一种特性:重写(覆盖)

当子类继承父类,沿袭了父类功能到子类中,但是子类虽
具备该功能,但是功能的内容却和父类不一致。这时
没必要定义新功能,而是通过重写功能内容

覆盖
子类覆盖父类,必须保证子类权限大于等于父类权限,
否则编译失败
静态只能覆盖静态

重载:只看同名函数的参数列表
重写:子父类方法要一模一样

子父类中的构造函数
在对子类对象进行初始化时,父类的构造函数也会运行。
那是因为子类的构造函数默认第一行有一条隐式的super();
super()会访问父类中空参数的构造函数。
而且子类中所有的构造函数默认第一行有一条隐式的super()


为什么子类一定要访问父类中的构造函数

因为父类中的数据,子类可以直接获取。所以子类对象建立时,需要先
查看父类是如何对这些数据进行初始化的。所以子类在对象初始化时,需要先
访问一下父类中的构造函数。
如果要访问父类中指定的构造函数,可以通过手动定义super(参数)语句的方式来访问。

super语句一定定义在子类构造函数的第一行
子类的实例化过程:
子类的所有的构造函数,默认都会访问父类中空参数的构造函数
因为每一个子类构造函数内的第一行都有一句隐式super()
当父类中没有空参数的构造函数时,子类必须手动通过super语句形式
来指定要访问父类中的构造函数
当然:子类的构造函数第一行也可以手动指定this语句来访问本类中的构造
函数。子类中至少会有一个构造函数会访问父类中的构造函数。
分享到:
评论

相关推荐

    C++静态成员函数与静态成员变量小结

    对C++静态成员函数和静态成员变量的使用方法和内部机制进行的经验总结

    建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。

    题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...

    实验4继承与派生(4学时)

    (2)定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3)定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此...

    C++程序设计课件:4 继承与多态.ppt

    protected继承是指基类的成员变量和成员函数在派生类中可以被任何非static成员函数和友元函数访问,但不能被非成员函数访问。private继承是指基类的成员变量和成员函数在派生类中隐藏,不能被任何函数访问,但可以...

    武汉大学c++第五次上机试题.doc

    3. 构造函数和析构函数:构造函数用于初始化对象的成员变量,而析构函数用于释放对象的资源。 实验二: 本实验要求定义教师类CTeacher和干部类CCadre,然后通过多重继承由这两个类派生出新类CTeacherCadre。要求在...

    第4章继承和多重继承.ppt

    单继承是指子类从一个父类中继承成员变量和成员函数。语法格式为: ``` class 父类名 { // ... }; class 子类名 : public 父类名 { // ... }; ``` 例如, Person 类和 BlackPerson 类的关系: ``` class Person {...

    2019011008_刘雪枫_第(7)次作业1

    本文总结了面向对象程序设计的基础知识点,包括类和对象、继承、构造函数和析构函数、成员变量和成员函数、访问控制、复制构造函数和赋值运算符的重载等。 一、类和对象 在面向对象程序设计中,类是对象的蓝图,...

    C++实验七继承和派生[借鉴].pdf

    在本实验中,我们学习了C++中的继承和派生机制,并通过四个 experiment 了解了继承关系下的成员访问控制、继承方式、虚基类、二义性问题的解决方法,以及构造函数和析构函数的调用规则。 一、继承关系下的成员访问...

    构造函数和析构函数在派生类中执行顺序须知

    在多继承的情况下,派生类的构造函数需要调用多个基类的构造函数,以便初始化所有基类的成员变量。同时,析构函数的执行顺序也需要按照基类的继承顺序来执行。 例如,在上面的代码中,派生类 derive 继承自基类 ...

    《面向对象程序设计》教学大纲.docx

    知识点5:友元函数和友元类 * 友元函数是指在一个类中,可以访问另一个类的私有成员变量和成员函数的函数。 * 友元类是指一个类可以访问另一个类的私有成员变量和成员函数的类。 知识点6:数组和指针 * 数组是一...

    C语言程序设计实验答案继承与派生.doc

    实验 7_2 中,我们声明了一个基类 `BaseClass`,有整型成员变量 `Number`,然后构造其派生类 `DerivedClass`,观察构造函数和析构函数的执行情况。 实验 7_3 中,我们声明了一个车(`vehicle`)基类,有 `MaxSpeed`、...

    C++ 类的继承友元模版举例

    在C++中,类的继承是指一个类可以继承另一个类的成员变量和成员函数,而派生类可以添加新的成员变量和成员函数,也可以覆盖基类的成员函数。继承的实现方式有两种:公有继承(public inheritance)和私有继承...

    C++对象模型详解[收集].pdf

    在C++类中,除了成员变量外,还可以封装成员函数和其他东西。然而,成员函数基本上不影响类实例的大小。文章还讨论了C++类的基本特征,包括继承、封装和多态。 在成员变量和成员函数的访问部分,文章讨论了成员变量...

    Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析

    在init()函数中声明的变量并且绑定在实例上的变量我们称之为成员变量。 类变量直接可以通过类名来调用。 1、若类变量与成员同时存在并且同名 使用对象来调用的时候,获取的结果是成员变量的值, 使用类名来调用,...

    C++课程实验五代码大全.zip

    (2) 声明一个基类BaseClass,有整形成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3) 声明一个车(vehicle)基类,具有MaxSpeed,Weight等成员变量,Run,Stop等成员函数,...

    c++派生类及继承实验报告.doc

    * 派生类的声明方法:在C++语言中,派生类的声明方法是使用冒号和关键字public、private、protected来继承基类的成员函数和成员变量。 * 派生类构造函数的定义方法:在C++语言中,派生类构造函数的定义方法是使用...

    C++程序设计教程面向对象分册(郑秋生主编)第一章答案.pdf

    本资源涵盖了 C++ 程序设计的基本概念、面向对象编程的基本原则、类的定义和使用、构造函数和析构函数、成员变量和成员函数、继承和多态性等内容,对于初学者和程序设计师来说都是非常有价值的资源。

    3分钟带你读懂C加加语言学习路线(精编版).docx

    类的继承是指一个类从另一个类继承成员变量和成员函数。多继承是指一个类从多个类继承成员变量和成员函数。C++ 语言支持类的继承和多继承。 多态 多态是指一个对象可以以不同的形式出现。C++ 语言支持多态的实现...

    C++歌手大奖赛管理系统.doc

    本文将对C++歌手大奖赛管理系统的设计和实现进行总结,涵盖了C++语言的基本概念、类的定义、构造函数、成员变量和成员函数的使用等方面。 一、C++语言基础 * 使用iostream、string、fstream和iomanip等头文件,...

    C++三种继承方式总结,帮你快速理解继承,进入C++高手

    这些继承方式主要是为了改变基类成员的访问属性,使得派生类可以访问基类的成员变量和成员函数。 首先,让我们了解一下类的两个特征:封装和继承。封装是指类可以隐藏其内部实现细节,只暴露必要的接口给外部世界,...

Global site tag (gtag.js) - Google Analytics