第一种情况:

运行结果:

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继承构造方法调用顺序相关推荐

  1. Java 父子类方法调用顺序

    概述 在 Java 的多态中,有个结论可以直接引用: 对象类型看左边 静态方法和成员变量看左边 成员方法,编译看左边,运行看右边(子类可能重写) 如果有多个匹配的方法可以调用,优先调用参数最匹配的一个 ...

  2. java继承父类执行顺序_java中子类继承父类程序执行顺序问题

    Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分,它们的执行顺序相对来说比较简单,用程序也很容易验证.比如新建一个测试父类. public ...

  3. java继承输出先后顺序_java继承时候类的运行顺序问题

    子类在继承父类后,创建子类对象会首先调用父类的构造函数,先运行父类的构造函数,然后再运行子类的构造函数,例如以下所看到的: class Father{ public Father(){ System. ...

  4. java 静态成员 创建_Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序...

    当创建一个对象时,各种成员变量及构造方法的初始化或调用顺序是怎样的呢? (1).如果类尚未加载,则先初始化静态成员变量和静态代码块,再初始化成员变量,最后调用相应的构造方法: (2).如果类已经加载过 ...

  5. 必考题:子类继承父类,初始化以及方法调用顺序

    前言: 最近重投简历,一家公司的笔试题,就是子类继承父类,初始化顺序以及方法的调用顺序,很遗憾,我做错了.所以,记录在这里,希望以后不要再错. 程序: // 父类 public class Paren ...

  6. 构造方法的调用顺序和成员变量的初始化时机以及动态绑定

    构造方法的调用顺序:子类构造器中,JVM会自动的先调用父类的构造方法,然后再执行子类构造方法.在JVM自动调用父类构造方法的时候,会完成父类中拥有的成员变量的值的初始化操作,此时子类的成员变量并未初始 ...

  7. java中构造代码块、方法调用顺序问题

    1. 继承的概念 继承在本职上是特殊--一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 2. 继承中的初始化顺序 从类的结构上而言,其 ...

  8. java静态初始化块无法直接调用,关于JAVA静态初始化块,初始化块,构造器调用顺序的有关问题...

    关于JAVA静态初始化块,初始化块,构造器调用顺序的问题 一个简单的关于初始化块,静态初始化块,构造器的执行顺序的小例子,请大家参考: 父类如下: package test.jamin; /** * ...

  9. Java代码块(代码块与静态代码块使用细节及调用顺序)

    目录 1.代码块的基本介绍 2.静态代码块 类什么时候加载[重点] 创建对象实例时(new) 创建子类对象实例时,父类也会被加载 使用类的静态成员时(静态属性,静态方法) 3.代码块的使用小细节 普通 ...

最新文章

  1. ORA-12518 TNS:监听程序无法分发客户机连接 解决办法
  2. [20150409]只读表空间与延迟块清除.txt
  3. 使用PLSQL导入导出数据库
  4. 树莓派怎么安装linux软件源,修改树莓派软件源
  5. HTML中a标签/超链接标签的下划线怎么去掉
  6. 基于visual Studio2013解决C语言竞赛题之0502最小数替换
  7. ZOJ 3471 压缩状态DP
  8. LeetCode 104二叉树的最大深度-简单
  9. 不务正业:说说工作内、技术外的那些事(工作如“围城”)
  10. 推荐一本学Python的好书《Python程序设计(第2版)》
  11. java发送html附件_Java发送邮件(图片、附件、HTML)
  12. 清除float浮动的几种方法
  13. quartz 整合 postgresql 附带例子
  14. qcap 教程_给winpe添加explorer教程(续):文件列表
  15. Scons安装和使用
  16. **阿里云ECS Linux服务器图形化界面安装方法 Ubuntu**
  17. 2023版大数据学习路线图(适合自学)
  18. Raven2靶机练习
  19. 安卓手机软件开发_安卓最牛的下载神器,快收藏起来自己偷偷用
  20. c#期末考试知识点_c#期末考试复习题

热门文章

  1. linux-3-指令入门
  2. 1110 Complete Binary Tree (25分)测试点2,3,4
  3. Microsoft SQL Server 数据库
  4. 点石互动--石头之:专访AsiaSEO创始人谢文怡
  5. LegoNet: A Fast and Exact Unlearning Architecture
  6. 两分钟打造淘宝抢单机器人
  7. 如何使用正则表达式验证24小时格式的时间
  8. SQ刷题/17-24
  9. 微信拉黑的人怎么找回来?3步找回“失踪”的好友
  10. 传智播客大讲堂隆重开讲