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);
}
}
------
父带参构造
子空参构造
----------------
父带参构造
子空参构造
子带参构造