1、 无参的构造器
class Art{
Art(){
System.out.println("Art Constructor");
}
}
class Draw extends Art{
Draw(){
System.out.println("Draw Constructor");
}
}
public class Cartoon extends Draw{
public Cartoon(){
System.out.println("Cartoon Constructor");
}
public static void main(String[] args) {
Cartoon cartoon = new Cartoon();
}
}
运行结果:
Art Constructor
Draw Constructor
Cartoon Constructor
可以发现,构建过程是从基类“向外”扩散的,所以基类在导出类构造器可以访问它之前,就已经完成了初始化。
2、 带参数的构造器
如果没有默认的基类构造器,或者想调用一个带参数的基类构造器,就必须用到关键字super来显示地编写调用基类构造器的语句,并且传入适当的参数列表。
class Game {
Game(int i) {
System.out.println("Game Construct i = " + i);
}
}
class BoardGame extends Game {
BoardGame(int i) {
super(i);
System.out.println("BoardGame Construct");
}
}
public class PlayGame extends BoardGame {
PlayGame(int i) {
super(i);
System.out.println("PlayGame Construct");
}
public static void main(String[] args) {
PlayGame playGame = new PlayGame(1);
}
}
运行结果:
Game Construct i = 1
BoardGame Construct
PlayGame Construct






网友评论