------- android培训、java培训、期待与您交流! ----------
子父类出现后,类成员的特点:
- 类中成员:
- 1,变量。
- 如果子父类中出现非私有的成员变量时,
- 子类要访问本类的变量用this,
- 要访问父类的变量用super,super代表的是父类的应用。
- 2,函数。
- 3,构造函数。
- super:父类对象。
- 变量的特点
- 有了父类以后,内存中就变得不一样。
- 加载子类class文件前先加载父类class。
- 方法区分静态区、非静态区(存放方法), 非静态区中存放方法,父类、 子类方法先后加载进方法区
- 对象在堆中建立。
-
内存中只有一个子类对象,
- 子类对象一new后分配属性空间:子类属性和父类属性。
- 子类中除了有this指向对象以外,还有super指向子类对象中的父类属性。
- 函数的特点
- 子类对象拿到了父类的函数,可以直接super调用。
- 子父类的函数一致时,使用子类的,这种特性叫重写(覆盖)。
- 当子类继承了父类,沿袭了父类的功能到子类中,子类虽具备该功能,但是功能却和父类不一致,这时保留父类的功能定义,重写父类内容。
- 在子类中super.函数可以添加上父类功能。
- 注意:
- 子类覆盖父类,必须保证子类权限大于等于子类权限,才可以覆盖,否则编译失败。
-
静态只能覆盖静态。牵扯到内存的先后加载问题。
- 重载:只看同名函数的参数列表,
- 重写:子父类方法要一模一样,比如返回值如果不一样是不允许的,JVM不知道掉用谁。
- 构造函数
-
构造函数 不会存在重写,因为构造函数与类同名,子父同名类不允许出现。
- 子类对象初始化,会先执行父类构造函数。子类不显示调用父类构造函数的时候,子类的所有构造函数第一行隐式是super();调用父类空参数构造函数(非空参数的不会执行)。
- 为什么子类一定要访问父类构造函数?
- 因为父类中的数据,子类可以直接获取。所以子类对象建立时,需要先查看父类是如何对数据进行初始化的。
- 如果要访问父类中指定的构造函数,可以通过手动定义super语句的方式来指定。
- 简单来的说,就是子类需要父类初始化完后数据。
- 注意:
- super和this都需要定义在第一行。因为初始化动作需要先做。
- this在第一行不会影响super,因为this调用的是另一个构造函数,因为每一个构造函数第一句都是隐式调用super,所以子类中至少有一个构造函数会访问父类。
- 当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来制定要访问父类中的构造函数。
分享到:
相关推荐
黑马程序员 - Java基础教学 - 03 - 变量的作用域、for循环、break、continue、内存结构
1.5 配置环境变量 #vim ~/.bashrc --根目录下为全局使用,为限制用户权限,可只修改某一用户的环境变量 export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS...
前提:正确安装JDK和配置环境变量 需要这个apk所在的rom里面的一些jar文件, 都在/system/framework里面:core.jar, ext. jar, framework. jar, android.policy. jar, services. Jar。 当然,这五个是最基本的...
JavaScript基础语法资料 ...19-布尔型Boolean.html 20-获取变量数据类型.html 21-字面量.html 22-转换为字符型.html 23-转换为数字型.html 24-计算年龄案例.html 25-简单加法器案例.html 26-转换为布尔型.html my.js
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
解压到任意目录,在这个目录下建立NETWORK文件夹,接着再这个文件夹下再建立ADMIN文件夹,然后建立tnsnames.ora文件,内容如下: ...也可以在电脑里设置NLS_LANG环境变量,就不需要每次都要执行批处理文件
----1....----2....----19.补上数据类型,自增型,搜索关键字,分页.mp4 ----20.面向对象.mp4 ----21.session与cookie的原理.mp4 ----22.定义cookie+cookie跨域.mp4 ----23.文件上传.mp4 ----24.可变变量.mp4
Linux运维-3.Shell编程-11shell基础-109用户自定义变量.avi
Linux运维-3.Shell编程-11shell基础-115预定义变量.avi
Linux运维-3.Shell编程-11shell基础-117declare声明变量类型.avi
Linux运维-3.Shell编程-11shell基础-113位置参数变量1.avi
Linux运维-3.Shell编程-11shell基础-114位置参数变量2.avi
第3.3讲-非线性规划-无约束多变量函数数值法寻优-直接法1
14-环境和shell变量.pdf 15-引号.pdf 16-shell脚本介绍.pdf 17-条件测试.pdf 18-控制流结构.pdf 19-shell 函数.pdf 20-向脚本传递参数.pdf 21-创建屏幕输出.pdf 22-创建屏幕输入.pdf 23-调试脚本.pdf .................
svn客户端工具(小乌龟) TortoiseSVN-1.8.4.24972-x64-svn-1.8.5.msi 命令行工具 Slik-Subversion-1.8.5-x64.msi 环境变量配置 有问题的童鞋可以留言,大家共同学习!
1.5 配置环境变量 #vim ~/.bashrc --根目录下为全局使用,为限制用户权限,可只修改某一用户的环境变量 export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS...
1.5 配置环境变量 #vim ~/.bashrc --根目录下为全局使用,为限制用户权限,可只修改某一用户的环境变量 export ORACLE_HOME=/usr/lib/oracle/11.2/client64 export TNS_ADMIN=$ORACLE_HOME/network/admin export NLS...
Linux运维-3.Shell编程-11shell基础-112环境变量3.avi
Linux运维-3.Shell编程-11shell基础-111环境变量2.avi
Linux运维-3.Shell编程-11shell基础-110环境变量1.avi