1、子类的构造过程必须调用其基类的构造方法。
2、子类可以在自己的构造方法中使用super(argument_list参数列表)调用基类的构造方法。
使用this(argument_list参数列表)调用奔雷的另外的构造方法。
如果调用了super,必须写在子类构造方法的第一行。
3、如果子类的构造方法中没有显示的调用基类的构造方法,则系统默认调用基类无参数的构造方法。
4、如果子类构造方法中既没有显示的调用基类构造方法,而基类中又没有无参数的构造方法,则编译出错。
---
class SuperClass
{
private int n;
SuperClass()
{
System.out.println("SuperClass()");
}
SuperClass(int n)
{
System.out.println("SuperClass("+n+")");
this.n=n;
}
}
class SubClass extends SuperClass
{
private int n;
SubClass(int n)
{
System.out.println("SubClass("+n+")");
this.n =n;
}
SubClass()
{
super(300);
System.out.println("SubClass()");
}
}
public class TestSuper
{
public static void main(String[] args)
{
SubClass sc1 = new SubClass();
SubClass sc2 = new SubClass(400);
}
}
----