package test;
public class javatest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
testStatic te;
System.out.println();
Fa t=new testStatic("ai");
}
}
class testStatic extends Fa{
static{
System.out.println("son:静态代码块");
}
{
System.out.println("son:构造代码块");
}
public testStatic(){
System.out.println("son:构造函数块");
}
public testStatic(String s){
//super(s);
System.out.println("son:构造函数块"+s);
}
}
class Fa{
static{
System.out.println("fa:静态代码块");
}
{
System.out.println("fa:构造代码块");
}
public Fa(){
System.out.println("fa:构造函数块");
}
public Fa(String s){
System.out.println("fa:构造函数块"+s);
}
}
子类继承了父类所有的方法和属性,当加载一个类时(访问其静态方法或静态域),先加载其父类。对父类静态域进行初始化(编译器自动初始化,然后执行字段定义处的初始化,以及静态代码块初始化),随后对本类的静态域进行同样操作,只进行一次。
当创建该类的实例时,先对父类中的实例变量进行初始化(自动初始化,字段初始化,实例代码块初始化,之后构造器初始化)。父类实例变量初始化完成后,对本类的实例变量进行同样操作。