二、初始化基类

2019-07-25  本文已影响0人  云烟渐成雨

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
上一篇 下一篇

猜你喜欢

热点阅读