- 浏览: 74477 次
- 性别:
- 来自: 深圳
文章分类
最新评论
继承成员变量和函数的特点
变量
如果子类中出现非私有的同名成员变量,子类要访问
本类中的变量,用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 656/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 562/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 657/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 445/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 698/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 547/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 715/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 595一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 693class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 662/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 650/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 634/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 809/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 569/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 581class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 518class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 598/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1179/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1521/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1631package pack; class PackageD ...
相关推荐
对C++静态成员函数和静态成员变量的使用方法和内部机制进行的经验总结
题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...
(2)定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3)定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此...
在init()函数中声明的变量并且绑定在实例上的变量我们称之为成员变量。 类变量直接可以通过类名来调用。 1、若类变量与成员同时存在并且同名 使用对象来调用的时候,获取的结果是成员变量的值, 使用类名来调用,...
(2) 声明一个基类BaseClass,有整形成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3) 声明一个车(vehicle)基类,具有MaxSpeed,Weight等成员变量,Run,Stop等成员函数,...
用VC编的简单的高校管理系统,people,Teacher,Cadre,TeacherCadre继承与派生
定义一个车(Vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车类(bicycle),汽车类(motocar)类,自行车类有高度等属性,汽车有座位数(seatNum)等属性。
4、理解纯虚函数和抽象类的概念和用法。 (二)实验内容 1、定义一个类A,在A中有两个私有的整型变量a和b,定义构造函数对a和b进行初始化,并实现成员函数getA()和getB()分别取得a和b的值。定义类B为A的公有继承类,...
3.2 类的成员变量和成员函数 36 3.3 类成员的访问权限以及类的封装 38 3.4 C++类的构造函数与析构函数 39 3.5 对象数组 47 3.6 this指针 50 3.7 static静态成员变量 52 3.8 static静态成员函数 53 3.9 const成员变量...
定义一个圆类circle,它有一个变量radius(半径)。从键盘输入数据,通过构造函数的参数传递给radius,编程计算并输出圆的的周长和面积。但是,必须确保输入的数据不为复数。
(2) 声明一个基类BaseClass,有整形成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3) 声明一个车(vehicle)基类,具有MaxSpeed,Weight等成员变量,Run,Stop等成员函数,...
2、设计一个单基继承的类层次程序,利用Person类派生出Student类,增加属性xh(学号),Person类中至少有姓名、年龄等数据成员,成员函数中构造函数对其初始化,析构函数释放相应存储单元,输出函数输出其数据成员的...
该MFC参考含盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容。 参考中“类层次结构图”是为了方便查找某个类的基类。 该MFC参考通常不描述通过继承的函数或操作符。若要寻求这些函数的信息,请参阅类...
定义一个车(Vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车类(bicycle),汽车类(motocar)类,自行车类有高度等属性,汽车有座位数(seatNum)等属性
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统...
仅头文件库可继承:支持将成员变量保存到文件并从文件加载。 它使用 。 可以编辑文件,因此可以更改变量,而无需重建。 基本上,您只需要在构造函数中注册一次成员变量。 就是这样。 通过调用方法保存到文件或从...
所有的基类继承过来的接口成员函数和配合gdi+库其他类的函数调用都是不可以的,因为没有作线程同步, 你只能调用下面位数不多的几个public成员函数,调用Destroy成员函数后,则就可以了,因为它会关闭线程。 其实你...
1、类的成员变量练习题 2、类的成员变量练习题 3、类的成员变量与方法、构造方法练习题 4、构造方法练习题 5、构造方法与重载练习题 6、构造方法的重载练习题 7、构造方法与重载、包的练习题 8、构造方法与重载练习...
2* 成员变量如何访问? 3* 成员函数如何访问? 4* 所谓的“调整块”(adjuster thunk)是怎么回事? 5* 使用如下机制时,开销如何: * 单继承、多重继承、虚继承 * 虚函数调用 * 强制转换到基类,或者强制...
其中包含方法double getDiagonal()求对角线长, double getArea()求面积,定义一个矩形类,实现此接口,并自行扩充成员变量和方法,定义一个正方形类继承矩形类(如矩形有长w和宽h,正方形有边x,并有相应的构造函数,...