package text;
/*继承中的构造方法*/
/*子类的构造的过程中必须调用其基类的构造方法*/
/*子类可以在自己的构造方法找个使用super(参数列表)调用基类的构造方法*/
/*注意: 使用this(参数列表)调用本类外的构造方法;
* 如果调用super,必须写在子类构造方法的第一行
*/
/*如果子类的构造方法中没有显示地调基类的构造方法,则系统默认调用基类无参数的构造方法*/
/*如果子类的构造方法中既没有显示的调用基类的构造方法,而基类中又没有无参的构造方法,则编译会出错*/
public class SuperClass {
private int n;
//无参构造函数
SuperClass() {
System.out.println("SuperClass()");
}
//有参构造函数
SuperClass(int n) {
System.out.println("SuperClass(" + n + ")");
this.n = n;
}
public static void main(String[] args) {
SubClass sc1 = new SubClass();
SubClass sc2 = new SubClass(400);
}
}
class SubClass extends SuperClass{
private int n;
//无参构造函数
SubClass() {
super(100);//如果调用super,必须写在子类构造方法的第一行
System.out.println("SubClass()");
}
SubClass(int n) {
System.out.println("SubClass(" + n + ")");
this.n = n;
}
}