关于JAVA中子类用this调用同类构造器,同时调用父类构造器的问题,见下面代码

Python06

关于JAVA中子类用this调用同类构造器,同时调用父类构造器的问题,见下面代码,第1张

你老师出个题,真他妈的会绕.这是典型打消学生的积极性,实际开发中根本不可能样

给你答案

以下是执行路线

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都是调用父类的属性或者方法