- 浏览: 77454 次
- 性别:
- 来自: 深圳
文章分类
最新评论
继承成员变量和函数的特点
变量
如果子类中出现非私有的同名成员变量,子类要访问
本类中的变量,用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 694/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 610/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 695/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 482/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 733/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 581/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 751/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 627一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 722class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 703/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 694/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 689/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 848/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 599/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 610class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 556class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 648/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1218/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1563/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1666package pack; class PackageD ...
相关推荐
成员变量和成员函数也涉及继承。一个类可以继承另一个类的属性和行为,子类可以扩展或覆盖父类的方法,实现多态性。多态性允许不同类型的对象对同一消息做出不同的响应。 五、总结 了解和熟练掌握C类的成员变量和...
"C++静态成员函数与静态成员变量小结" 静态成员在C++中扮演着重要的角色,包括静态数据成员和静态函数成员两部分。静态成员是指在类体中使用static修饰符声明的成员,可以直接使用类名+静态成员名访问该静态成员。...
本篇文章将深入探讨VC++中结构体的成员变量和方法,以及如何实现结构体成员的调用。 1. **结构体与类的区别** - 默认访问修饰符:在C++中,类的成员默认是私有的(private),而结构体的成员默认是公有的(public...
题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...
在Java编程语言中,类作为成员变量是一种常见的设计模式,它允许我们将一个对象实例嵌套在另一个类的内部,以此来实现数据封装和模块化。这种做法有助于组织代码,提高可读性和可维护性。下面将详细介绍如何在Java中...
本实例主要探讨了三种类型的成员函数:普通成员函数、类成员函数和类静态成员函数。以下是对这三种函数类型的详细解释: 1. 普通成员函数(Non-static Member Functions): 普通成员函数是类的一部分,它们可以...
// 其他成员变量和函数 }; MyThread* pThread = new MyThread; pThread->m_pThis = this; // 设置对象指针 pThread->CreateThread(); ``` 二、在多线程中使用类中的成员变量 2.1 数据同步问题 在多线程环境下,...
C++类继承内存布局是一种复杂的机制,涉及到类的继承、成员变量的访问、成员函数的访问、虚函数调用、强制转换到基类或虚基类等多个方面。在本文中,我们将从C结构的布局开始,逐步介绍单继承、多重继承、虚继承的...
子类可以从父类继承所有非私有的成员变量和方法。 - **示例**: ```java public class Book extends Document { private int pageCount; public Book(String name, int pageCount) { super(name); // 调用父类...
(2)定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3)定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此...
5. **构造函数和析构函数**:构造函数和析构函数在继承中不被继承,每个类都有自己的构造和析构函数。不过,基类的析构函数可以声明为虚函数,以便在销毁子类对象时正确地调用基类的析构。 在实际编程中,理解这些...
成员变量和成员方法是类的重要组成部分,本篇将详细解释这两个概念以及在创建和使用过程中常见的问题。 成员变量,也称为类的属性或字段,是用来存储数据的变量,它们在类的内部定义。成员变量可以被类的任何方法...
protected继承是指基类的成员变量和成员函数在派生类中可以被任何非static成员函数和友元函数访问,但不能被非成员函数访问。private继承是指基类的成员变量和成员函数在派生类中隐藏,不能被任何函数访问,但可以...
- **继承**:通过继承机制,`motorcar`和`bicycle`能够共享`Vehicle`类的成员变量和成员函数,同时可以添加自己的特性和行为。 - **多态**:通过虚函数机制,实现了动态绑定,即可以在程序运行时根据实际对象类型来...
派生是继承的一种特殊形式,它允许一个类继承另一个类的成员变量和成员函数,并且可以添加新的成员变量和成员函数。派生类可以继承基类的所有成员变量和成员函数,并且可以重写基类的成员函数。 运算符重载是C++中...
3. 构造函数和析构函数:构造函数用于初始化对象的成员变量,而析构函数用于释放对象的资源。 实验二: 本实验要求定义教师类CTeacher和干部类CCadre,然后通过多重继承由这两个类派生出新类CTeacherCadre。要求在...
下面将详细解析继承的概念、特点、好处以及Java中成员变量、函数和构造函数在继承中的特点。 ### 继承简介 继承是一种机制,允许新定义的类(子类)继承父类的属性和方法。子类拥有父类的所有属性和方法,并且可以...
6. 继承:继承是面向对象编程的一种机制,它允许一个类从另一个类继承成员变量和成员函数。 7. 函数重载:函数重载是C++语言的一种机制,它允许定义多个同名函数,但它们的参数列表不同。 8. 指针:指针是一种数据...
本资源提供了C++课后的作业和实验答案,涵盖了面向对象编程、继承、多继承、虚继承、构造函数、析构函数、成员变量和成员函数等概念。 知识点1:继承 在C++中,继承是面向对象编程的重要概念。继承允许一个类继承...