[java]构造方法super() this()

来源:互联网 发布:河南公考网络培训 编辑:程序博客网 时间:2024/04/30 23:13
1.
package com.ma.demo5;public class Fu {  int age = 10;  public Fu() {  }  public Fu(int i) {    System.out.println("父带参构造");  }}---package com.ma.demo5;public class Zi extends Fu {  public Zi() {    // super(); 默认    System.out.println("子空参构造");  }  public Zi(int i) {    System.out.println("子带参构造");  }}

---父无参构造子空参构造----------------父无参构造子带参构造




2.父类无空参构造解决:
package com.ma.demo5;public class Fu {  int age = 10;  public Fu(int i) {    System.out.println("父带参构造");  }}---package com.ma.demo5;public class Zi extends Fu {  public Zi() {    super();    System.out.println("子空参构造");  }  public Zi(int i) {    System.out.println("子带参构造");  }}


----
方法1: 子类调用父类的实参构造
package com.ma.demo5;public class Zi extends Fu {  public Zi() {    super(10);    System.out.println("子空参构造");  }  public Zi(int i) {    super(10);    System.out.println("子带参构造");  }}




方法2:子类使用this()调用子类的空参构造.
package com.ma.demo5;public class Fu {  int age = 10;  public Fu(int i) {    System.out.println("父带参构造");  }}---package com.ma.demo5;public class Zi extends Fu {  public Zi() {    super(10);    System.out.println("子空参构造");  }  public Zi(int i) {    this();    System.out.println("子带参构造");  }}---package com.ma.demo5;public class Test {  public static void main(String[] args) {    Zi zz = new Zi();    System.out.println("----------------");    Zi zz2 = new Zi(10);  }}------父带参构造子空参构造----------------父带参构造子空参构造子带参构造