与Java继承有关的问题

有人能够解释一下这个问题吗,详细解释一下,本人初学Java。还搞不清楚其中的关系

img

这个跟执行顺序有关系。
1、类B继承了类A,创建类B构造方法时,会优先执行父类的构造方法,所以先执行的是父类的构造方法A(),输出“a”
2、再执行自身构造方法B(),由于B()构造方法调用了this("abc"),即调用有参构造方法,执行B(String name)这个方法,输出“b name”
3、最后输出“b”

img

a name b
new B()调用B类的无参构造函数。该构造函数中调用this("abc"),会调用A类的有参构造函数

我看懂了,你这个输出结果,除了2min没看到怎么输出的,其它三个是按照逻辑输出出来的
输出结果:a
b name
b
应该是没有逗号的,而且是换行的
具体逻辑分析:
1、main中:B b=new B();
2、首先调用的是B类中的无参构造B(){this("abc");.....("b");)
3、因为是继承关系,所以无参构造中有个默认的父类super();也就是先调用的是父类A中的无参构造方法A(){}里的输出内容:a;
4、然后运行this("abc"),意思是调用本类中的有参构造,也就是B(String name){}方法,输出内容为:b name
5、最后在运行B类无参构造中的syso("b")这条输出语句。

刚才自己敲了下,运行结果确实是我想的这个逻辑

img

逻辑表达应该很清楚,还望博友采纳!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632