[img]http://dl2.iteye.com/upload/attachment/0116/1316/a5fe1bb2-9c1d-3d63-ad49-90e3ad000663.jpg[/img]
[img]http://dl2.iteye.com/upload/attachment/0116/7655/431036ab-48bd-3bbf-928c-0a6844e022c2.jpg[/img]
[img]http://dl2.iteye.com/upload/attachment/0116/7655/431036ab-48bd-3bbf-928c-0a6844e022c2.jpg[/img]
package test;
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){
//没写super,系统默认调用父类无参数的构造方法
//相当于super();
System.out.println("SubClass("+n+")");
this.n = n;
}
SubClass(){
//在子类的构造过程中必须调用其父类的构造方法
super(300);//调用的是第二个构造方法
System.out.println("SubClass()");
}
}
public class Test{
public static void main(String args[]){
//SubClass sc1 = new SubClass();
//如果子类的构造方法发中没有显示地调用父类构造方法,
//则系统默认调用父类无参数的构造方法
SubClass sc2 = new SubClass(400);//调用子类的第一个方法
}
}