public class Init {
private int age;//非静态初始化语句<3>
private static String name; //静态初始化语句,先初始化静态 <1.1>
/**静态初始化语句和静态初始化模块都是静态(同等级),谁在前面先初始化谁*/
{/**动态初始化模块(非静态初始化模块)<4>*/
double width;
float price;
System.out.println("父类非静态");
}
static{/**静态初始化模块<2>*/
int id;
String pwd;
name = "admin";//在初始化name时并进行赋值,不用等静态初始化模块<1.2>
System.out.println("父类静态");
}
//private static String name;/**如果把语句放在模块下面,也是和上面顺序一样<1.1>*/
/**构造方法要等到所有的成员变量都初始化完后才执行*/
public Init(){
char gender = 'c';//<5>
System.out.println("父类构造");
}
public static void main(String[] args) {
//new Init();
new Child();
}
}
/**
* 子类继承父类,子类和父类都有静态和非静态和构造
* 1、初始化父类静态
* 2、初始化子类静态
* 3、初始化父类非静态
* 4、初始化父类构造
* 5、初始化子类非静态
* 6、初始化子类构造
*
* */
class Child extends Init{
{
System.out.println("子类非静态");
}
static{
System.out.println("子类静态");
}
public Child(){
System.out.println("子类构造");
}
}