- 浏览: 75543 次
- 性别:
- 来自: 深圳
文章分类
最新评论
继承成员变量和函数的特点
变量
如果子类中出现非私有的同名成员变量,子类要访问
本类中的变量,用this。访问父类同名变量用super。
super的使用和this的使用几乎一致。
this代表的是本类对象的引用。
super代表的是父类对象的引用。
函数
当子类出现和父类一模一样的函数时,子类对象调用
该函数,会运行子类函数内容。如同父类函数被覆盖一样。
这种情况是函数的另一种特性:重写(覆盖)
当子类继承父类,沿袭了父类功能到子类中,但是子类虽
具备该功能,但是功能的内容却和父类不一致。这时
没必要定义新功能,而是通过重写功能内容
覆盖
子类覆盖父类,必须保证子类权限大于等于父类权限,
否则编译失败
静态只能覆盖静态
重载:只看同名函数的参数列表
重写:子父类方法要一模一样
子父类中的构造函数
在对子类对象进行初始化时,父类的构造函数也会运行。
那是因为子类的构造函数默认第一行有一条隐式的super();
super()会访问父类中空参数的构造函数。
而且子类中所有的构造函数默认第一行有一条隐式的super()
为什么子类一定要访问父类中的构造函数
因为父类中的数据,子类可以直接获取。所以子类对象建立时,需要先
查看父类是如何对这些数据进行初始化的。所以子类在对象初始化时,需要先
访问一下父类中的构造函数。
如果要访问父类中指定的构造函数,可以通过手动定义super(参数)语句的方式来访问。
super语句一定定义在子类构造函数的第一行
子类的实例化过程:
子类的所有的构造函数,默认都会访问父类中空参数的构造函数
因为每一个子类构造函数内的第一行都有一句隐式super()
当父类中没有空参数的构造函数时,子类必须手动通过super语句形式
来指定要访问父类中的构造函数
当然:子类的构造函数第一行也可以手动指定this语句来访问本类中的构造
函数。子类中至少会有一个构造函数会访问父类中的构造函数。
变量
如果子类中出现非私有的同名成员变量,子类要访问
本类中的变量,用this。访问父类同名变量用super。
super的使用和this的使用几乎一致。
this代表的是本类对象的引用。
super代表的是父类对象的引用。
函数
当子类出现和父类一模一样的函数时,子类对象调用
该函数,会运行子类函数内容。如同父类函数被覆盖一样。
这种情况是函数的另一种特性:重写(覆盖)
当子类继承父类,沿袭了父类功能到子类中,但是子类虽
具备该功能,但是功能的内容却和父类不一致。这时
没必要定义新功能,而是通过重写功能内容
覆盖
子类覆盖父类,必须保证子类权限大于等于父类权限,
否则编译失败
静态只能覆盖静态
重载:只看同名函数的参数列表
重写:子父类方法要一模一样
子父类中的构造函数
在对子类对象进行初始化时,父类的构造函数也会运行。
那是因为子类的构造函数默认第一行有一条隐式的super();
super()会访问父类中空参数的构造函数。
而且子类中所有的构造函数默认第一行有一条隐式的super()
为什么子类一定要访问父类中的构造函数
因为父类中的数据,子类可以直接获取。所以子类对象建立时,需要先
查看父类是如何对这些数据进行初始化的。所以子类在对象初始化时,需要先
访问一下父类中的构造函数。
如果要访问父类中指定的构造函数,可以通过手动定义super(参数)语句的方式来访问。
super语句一定定义在子类构造函数的第一行
子类的实例化过程:
子类的所有的构造函数,默认都会访问父类中空参数的构造函数
因为每一个子类构造函数内的第一行都有一句隐式super()
当父类中没有空参数的构造函数时,子类必须手动通过super语句形式
来指定要访问父类中的构造函数
当然:子类的构造函数第一行也可以手动指定this语句来访问本类中的构造
函数。子类中至少会有一个构造函数会访问父类中的构造函数。
发表评论
-
151多线程(优先级&yield方法)
2015-10-28 11:16 669/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 581/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 669/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 456/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 712/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 558/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 725/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 605一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 704class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 677/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 669/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 645/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 821/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 575/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 590class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 532class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 615/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1191/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1537/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1648package pack; class PackageD ...
相关推荐
对C++静态成员函数和静态成员变量的使用方法和内部机制进行的经验总结
题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...
(2)定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3)定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此...
protected继承是指基类的成员变量和成员函数在派生类中可以被任何非static成员函数和友元函数访问,但不能被非成员函数访问。private继承是指基类的成员变量和成员函数在派生类中隐藏,不能被任何函数访问,但可以...
3. 构造函数和析构函数:构造函数用于初始化对象的成员变量,而析构函数用于释放对象的资源。 实验二: 本实验要求定义教师类CTeacher和干部类CCadre,然后通过多重继承由这两个类派生出新类CTeacherCadre。要求在...
单继承是指子类从一个父类中继承成员变量和成员函数。语法格式为: ``` class 父类名 { // ... }; class 子类名 : public 父类名 { // ... }; ``` 例如, Person 类和 BlackPerson 类的关系: ``` class Person {...
本文总结了面向对象程序设计的基础知识点,包括类和对象、继承、构造函数和析构函数、成员变量和成员函数、访问控制、复制构造函数和赋值运算符的重载等。 一、类和对象 在面向对象程序设计中,类是对象的蓝图,...
在本实验中,我们学习了C++中的继承和派生机制,并通过四个 experiment 了解了继承关系下的成员访问控制、继承方式、虚基类、二义性问题的解决方法,以及构造函数和析构函数的调用规则。 一、继承关系下的成员访问...
在多继承的情况下,派生类的构造函数需要调用多个基类的构造函数,以便初始化所有基类的成员变量。同时,析构函数的执行顺序也需要按照基类的继承顺序来执行。 例如,在上面的代码中,派生类 derive 继承自基类 ...
知识点5:友元函数和友元类 * 友元函数是指在一个类中,可以访问另一个类的私有成员变量和成员函数的函数。 * 友元类是指一个类可以访问另一个类的私有成员变量和成员函数的类。 知识点6:数组和指针 * 数组是一...
实验 7_2 中,我们声明了一个基类 `BaseClass`,有整型成员变量 `Number`,然后构造其派生类 `DerivedClass`,观察构造函数和析构函数的执行情况。 实验 7_3 中,我们声明了一个车(`vehicle`)基类,有 `MaxSpeed`、...
在C++中,类的继承是指一个类可以继承另一个类的成员变量和成员函数,而派生类可以添加新的成员变量和成员函数,也可以覆盖基类的成员函数。继承的实现方式有两种:公有继承(public inheritance)和私有继承...
在C++类中,除了成员变量外,还可以封装成员函数和其他东西。然而,成员函数基本上不影响类实例的大小。文章还讨论了C++类的基本特征,包括继承、封装和多态。 在成员变量和成员函数的访问部分,文章讨论了成员变量...
在init()函数中声明的变量并且绑定在实例上的变量我们称之为成员变量。 类变量直接可以通过类名来调用。 1、若类变量与成员同时存在并且同名 使用对象来调用的时候,获取的结果是成员变量的值, 使用类名来调用,...
(2) 声明一个基类BaseClass,有整形成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3) 声明一个车(vehicle)基类,具有MaxSpeed,Weight等成员变量,Run,Stop等成员函数,...
* 派生类的声明方法:在C++语言中,派生类的声明方法是使用冒号和关键字public、private、protected来继承基类的成员函数和成员变量。 * 派生类构造函数的定义方法:在C++语言中,派生类构造函数的定义方法是使用...
本资源涵盖了 C++ 程序设计的基本概念、面向对象编程的基本原则、类的定义和使用、构造函数和析构函数、成员变量和成员函数、继承和多态性等内容,对于初学者和程序设计师来说都是非常有价值的资源。
类的继承是指一个类从另一个类继承成员变量和成员函数。多继承是指一个类从多个类继承成员变量和成员函数。C++ 语言支持类的继承和多继承。 多态 多态是指一个对象可以以不同的形式出现。C++ 语言支持多态的实现...
本文将对C++歌手大奖赛管理系统的设计和实现进行总结,涵盖了C++语言的基本概念、类的定义、构造函数、成员变量和成员函数的使用等方面。 一、C++语言基础 * 使用iostream、string、fstream和iomanip等头文件,...
这些继承方式主要是为了改变基类成员的访问属性,使得派生类可以访问基类的成员变量和成员函数。 首先,让我们了解一下类的两个特征:封装和继承。封装是指类可以隐藏其内部实现细节,只暴露必要的接口给外部世界,...