给你答案
以下是执行路线
Super s = new Sub(2)//调用下面这个构造函数
public Sub(int i){
this() //这句让你调用 默认构造函数
System.out.println("5") }
public Sub(){
this(12,"12")//这句又让人调用下面的构造函数
System.out.println("4") }
public Sub(int i,String str){
super(1,"1") //好了开始调用父类构造函数了
System.out.println("6")}
public Super(int i,String str){
this(1) //又让你调用父类的另一个构造函数,顺便说一句,出题的人有病
System.out.println("3")}
public Super(int i){
System.out.println("2")} //看到没有第一个 2出来了
现在再倒着退回去就看出来了 2 3 64 5
出题的人有病 ,
最重要的一个知识点却没有考, 就是默认调用父类的空构造函数super()
很高兴回答你的问题。java中通过this调用的方法是当前实例的方法。
也就是在子类中用this调用的方法是子类自己的方法,或是继承自父类的方法。
如果要调用父类的方法可以使用supper来调用。
如果有帮助到你,请点击采纳。
当有相同的属性或者方法是this子类表示调用自己的属性或者方法,super调用父类的属性或者方法。当子类调用的属性方法在子类中不存在时,那么this和super都是调用父类的属性或者方法