java继承构造方法调用顺序
第一种情况:
运行结果:
People(String name)
Child(String name)
分析:1.首先根据带参数的对象去找相应类的构造方法,在Child类中找到了带参数的构造方法,
2.因为有super(name)的语句存在,所以会去调用父类的带参数的构造方法,输出People(String name); 3、回到子类中执行输出Child(String name)。
第二种情况:
运行结果:
People()
Child(String name)
分析:
1、创建了一个带参数的对象,此时会去子类找相应的带参数的构造方法,尽管在该方法中没有写super()语句,但是还是会默认有super()方法的存在
2、默认的super()方法调用后还是去父类找到无参数的构造方法输出相应的语句。
3、再返回到子类输出
以下是一个相对来说较为复杂的调用示例:
分析:
1、首先创建了child对象,去找子类的构造方法,默认视为super()方法存在
2、此时去父类的无参构造方法People()方法
3、加载父类中的私有类型成员变量name
4、再次进入父类的构造方法里面,包含两个方法的调用
5、回到子类中寻找该方法playBasketBall(),并输出语句,但是父类的私有变量不能共享,因此输出name值为null
6、回到子类中寻找该方法playFootBall(),并输出语句,但是父类的私有变量不能共享,因此输出name值为null
7、父类构造方法的内容执行完毕,正式回到子类中。
8、继续加载子类的成员变量,执行方法并输出。
运行结果:
child_playFootball:null
child_playBasketball:null
child_playFootball:jerry
child_playBasketball:jerry
java继承构造方法调用顺序相关推荐
- Java 父子类方法调用顺序
概述 在 Java 的多态中,有个结论可以直接引用: 对象类型看左边 静态方法和成员变量看左边 成员方法,编译看左边,运行看右边(子类可能重写) 如果有多个匹配的方法可以调用,优先调用参数最匹配的一个 ...
- java继承父类执行顺序_java中子类继承父类程序执行顺序问题
Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分,它们的执行顺序相对来说比较简单,用程序也很容易验证.比如新建一个测试父类. public ...
- java继承输出先后顺序_java继承时候类的运行顺序问题
子类在继承父类后,创建子类对象会首先调用父类的构造函数,先运行父类的构造函数,然后再运行子类的构造函数,例如以下所看到的: class Father{ public Father(){ System. ...
- java 静态成员 创建_Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序...
当创建一个对象时,各种成员变量及构造方法的初始化或调用顺序是怎样的呢? (1).如果类尚未加载,则先初始化静态成员变量和静态代码块,再初始化成员变量,最后调用相应的构造方法: (2).如果类已经加载过 ...
- 必考题:子类继承父类,初始化以及方法调用顺序
前言: 最近重投简历,一家公司的笔试题,就是子类继承父类,初始化顺序以及方法的调用顺序,很遗憾,我做错了.所以,记录在这里,希望以后不要再错. 程序: // 父类 public class Paren ...
- 构造方法的调用顺序和成员变量的初始化时机以及动态绑定
构造方法的调用顺序:子类构造器中,JVM会自动的先调用父类的构造方法,然后再执行子类构造方法.在JVM自动调用父类构造方法的时候,会完成父类中拥有的成员变量的值的初始化操作,此时子类的成员变量并未初始 ...
- java中构造代码块、方法调用顺序问题
1. 继承的概念 继承在本职上是特殊--一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 2. 继承中的初始化顺序 从类的结构上而言,其 ...
- java静态初始化块无法直接调用,关于JAVA静态初始化块,初始化块,构造器调用顺序的有关问题...
关于JAVA静态初始化块,初始化块,构造器调用顺序的问题 一个简单的关于初始化块,静态初始化块,构造器的执行顺序的小例子,请大家参考: 父类如下: package test.jamin; /** * ...
- Java代码块(代码块与静态代码块使用细节及调用顺序)
目录 1.代码块的基本介绍 2.静态代码块 类什么时候加载[重点] 创建对象实例时(new) 创建子类对象实例时,父类也会被加载 使用类的静态成员时(静态属性,静态方法) 3.代码块的使用小细节 普通 ...
最新文章
- ORA-12518 TNS:监听程序无法分发客户机连接 解决办法
- [20150409]只读表空间与延迟块清除.txt
- 使用PLSQL导入导出数据库
- 树莓派怎么安装linux软件源,修改树莓派软件源
- HTML中a标签/超链接标签的下划线怎么去掉
- 基于visual Studio2013解决C语言竞赛题之0502最小数替换
- ZOJ 3471 压缩状态DP
- LeetCode 104二叉树的最大深度-简单
- 不务正业:说说工作内、技术外的那些事(工作如“围城”)
- 推荐一本学Python的好书《Python程序设计(第2版)》
- java发送html附件_Java发送邮件(图片、附件、HTML)
- 清除float浮动的几种方法
- quartz 整合 postgresql 附带例子
- qcap 教程_给winpe添加explorer教程(续):文件列表
- Scons安装和使用
- **阿里云ECS Linux服务器图形化界面安装方法 Ubuntu**
- 2023版大数据学习路线图(适合自学)
- Raven2靶机练习
- 安卓手机软件开发_安卓最牛的下载神器,快收藏起来自己偷偷用
- c#期末考试知识点_c#期末考试复习题