`

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

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

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

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

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

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

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

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

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


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

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

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

相关推荐

    C类的成员变量和成员函数-C教程共3页.pdf.zip

    成员变量和成员函数也涉及继承。一个类可以继承另一个类的属性和行为,子类可以扩展或覆盖父类的方法,实现多态性。多态性允许不同类型的对象对同一消息做出不同的响应。 五、总结 了解和熟练掌握C类的成员变量和...

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

    "C++静态成员函数与静态成员变量小结" 静态成员在C++中扮演着重要的角色,包括静态数据成员和静态函数成员两部分。静态成员是指在类体中使用static修饰符声明的成员,可以直接使用类名+静态成员名访问该静态成员。...

    VC++结构体成员变量和方法

    本篇文章将深入探讨VC++中结构体的成员变量和方法,以及如何实现结构体成员的调用。 1. **结构体与类的区别** - 默认访问修饰符:在C++中,类的成员默认是私有的(private),而结构体的成员默认是公有的(public...

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

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

    java 使用类作为成员变量

    在Java编程语言中,类作为成员变量是一种常见的设计模式,它允许我们将一个对象实例嵌套在另一个类的内部,以此来实现数据封装和模块化。这种做法有助于组织代码,提高可读性和可维护性。下面将详细介绍如何在Java中...

    普通成员函数、类成员函数和类静态成员函数实例(VS2010)

    本实例主要探讨了三种类型的成员函数:普通成员函数、类成员函数和类静态成员函数。以下是对这三种函数类型的详细解释: 1. 普通成员函数(Non-static Member Functions): 普通成员函数是类的一部分,它们可以...

    c++成员函数成为线程函数

    // 其他成员变量和函数 }; MyThread* pThread = new MyThread; pThread->m_pThis = this; // 设置对象指针 pThread->CreateThread(); ``` 二、在多线程中使用类中的成员变量 2.1 数据同步问题 在多线程环境下,...

    C++类继承内存布局详解图(一目了然)

    C++类继承内存布局是一种复杂的机制,涉及到类的继承、成员变量的访问、成员函数的访问、虚函数调用、强制转换到基类或虚基类等多个方面。在本文中,我们将从C结构的布局开始,逐步介绍单继承、多重继承、虚继承的...

    定义一个Document类,包含成员变量name,从Document派生出Book类,增加PageCount变量。编写主函数

    子类可以从父类继承所有非私有的成员变量和方法。 - **示例**: ```java public class Book extends Document { private int pageCount; public Book(String name, int pageCount) { super(name); // 调用父类...

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

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

    非自动继承的函数

    5. **构造函数和析构函数**:构造函数和析构函数在继承中不被继承,每个类都有自己的构造和析构函数。不过,基类的析构函数可以声明为虚函数,以便在销毁子类对象时正确地调用基类的析构。 在实际编程中,理解这些...

    PHP程序设计-3期(KC016) 3.8.1创建和使用类常见问题:成员变量和成员方法.docx

    成员变量和成员方法是类的重要组成部分,本篇将详细解释这两个概念以及在创建和使用过程中常见的问题。 成员变量,也称为类的属性或字段,是用来存储数据的变量,它们在类的内部定义。成员变量可以被类的任何方法...

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

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

    车(Vehicle)基类,具有MaxSpeed、Weight等成员变量

    - **继承**:通过继承机制,`motorcar`和`bicycle`能够共享`Vehicle`类的成员变量和成员函数,同时可以添加自己的特性和行为。 - **多态**:通过虚函数机制,实现了动态绑定,即可以在程序运行时根据实际对象类型来...

    继承与派生 运算符重载

    派生是继承的一种特殊形式,它允许一个类继承另一个类的成员变量和成员函数,并且可以添加新的成员变量和成员函数。派生类可以继承基类的所有成员变量和成员函数,并且可以重写基类的成员函数。 运算符重载是C++中...

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

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

    徐葳《40小时掌握java语言之04继承》内部教材

    下面将详细解析继承的概念、特点、好处以及Java中成员变量、函数和构造函数在继承中的特点。 ### 继承简介 继承是一种机制,允许新定义的类(子类)继承父类的属性和方法。子类拥有父类的所有属性和方法,并且可以...

    2015c++试题2.docx

    6. 继承:继承是面向对象编程的一种机制,它允许一个类从另一个类继承成员变量和成员函数。 7. 函数重载:函数重载是C++语言的一种机制,它允许定义多个同名函数,但它们的参数列表不同。 8. 指针:指针是一种数据...

    C++课后作业及实验答案

    本资源提供了C++课后的作业和实验答案,涵盖了面向对象编程、继承、多继承、虚继承、构造函数、析构函数、成员变量和成员函数等概念。 知识点1:继承 在C++中,继承是面向对象编程的重要概念。继承允许一个类继承...

Global site tag (gtag.js) - Google Analytics