继承与初始化:
先执行基类和新类中的static域(基类中的static域先执行,新类中的static后执行。且static域只执行一次),基类中的普通域,基类中的构造器。新类中的普通域,新类中的构造器。
package com.zx.test07.test07_01;
class One{
One(String str){
System.out.println(str+" "+"one()");
}
}
class Insect {
One one=new One("基类");
protected int j;
Insect(){
System.out.println("Insect()");
j=2;//为j赋值
}
private static int x1 = printInit("Insent中的static x1 初始化");
static int printInit(String s) {
System.out.println(s);
return 47;
}
}
public class Beetle extends Insect{
One one=new One("新类");
private int k=printInit("Beetle.k initialized");
Beetle(){
System.out.println("k="+k+" "+"j="+j);
}
private static int x2 = printInit("Beetle中的static x2 初始化");
public static void main(String[] args) {
Beetle beetle = new Beetle();
}
}
//Output
Insent中的static x1 初始化
Beetle中的static x2 初始化
基类 one()
Insect()
新类 one()
Beetle.k initialized
k=47 j=2