【25】java基类的初始化

a,对于构造函数无参数的基类而言,它的初始化,是由其子类自动调用其构造函数来完成的,如果该其类没有构造函数,编译器会自动生成一个:

public class life {

public life(){
System.out.println("life constructor");
}
}
public class animal extends life {

public animal(){
System.out.println("animal constructor");
}
}
public class human extends animal {

public human(){
System.out.println("human constructor");
}
/**
*
@param args
*/
public static void main(String[] args) {

new human();
}
}


life constructor
animal constructor
human constructor

b,如果基类的构造函数没有默认的参数,或者想调用一个包含参数的构造函数进行初始化,则必须写出对基类的调用代码,一般使用super实现:

public class life {

public life(int i){
System.out.println("life constructor");
}
}
public class animal extends life {

public animal(int i){
super(i);//子类构造的第一件事就是调用父类的构造函数
System.out.println("animal constructor");
}
}
public class human extends animal {

public human(){
super(66);////子类构造的第一件事就是调用父类的构造函数
System.out.println("human constructor");
}
/**
*
@param args
*/
public static void main(String[] args) {

new human();
}
}






posted @ 2012-03-21 13:22  Marstar  阅读(1464)  评论(0编辑  收藏  举报