一个Java小程序,帮助理解Java继承中的初始化过程

class Insec{

    private int i = 9;

    protected int j;

    Insec(){

        System.out.println("i = " + i + ", " + "j = " + j);

        j = 39;

    }

    private static int x1 = printInt("static Insec.x1 init");

    static int printInt(String s){

        System.out.println(s);

        return 47;

    }

    private int k = printInt("Insec init k");

}

public class Garbage extends Insec{

 

    private int k = printInt("beetle.k init");

 

    public Garbage(){

        System.out.println("k = " + k);

        System.out.println("j = " + j);

    }

    public int q = printInt("beetle.q init");

    private static int x2 = printInt("static beetle.x2 init");

     

    /**

     * @param args

     */

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        System.out.println("beetle construct");

        Garbage b = new Garbage();

    }

}



输出:



static Insec.x1 init

static beetle.x2 init

beetle construct

Insec init k

i = 9, j = 0

beetle.k init

beetle.q init

k = 47

j = 39

  

 

你可能感兴趣的:(java)