答案:只需要在main中添加
Main w1=new Main(true);
但是题干不是要输出三行吗?为什么只调用第三个构造方法,就可以输出三行,而且还是按照一二三的顺序输出的?
这里分别采用只分别使用构造方法一、二、三的方式来解答
这里可以发现,只使用构造三是可以达到题意的
构造三的允许逻辑:构造三中 第一行是this(1); this就是Main,也就是调用了构造二,而构造二中第一行又是this();也就调用了构造一,这个执行顺序就和C语言的递归是一样的,一条语句需要执行到尽头,才会执行下一条语句,这里把执行所有语句的顺序写下来:
this(1);
this();
System.out.println("构造方法一被调用了");
System.out.println("构造方法二被调用了");
System.out.println("构造方法三被调用了");
参考文献:构造方法
仅供参考,如有更优解,可在评论区参与讨论
Comments NOTHING