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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>