- 没有父类的情况:
- 实现自身的静态属性和静态代码块.(根据代码出现的顺序执行)
- 实现自身的非静态属性和非静态代码块.
- 执行自身的构造函数
- 有继承类的情况:
- 实现父类的公共静态属性和静态代码块代码
- 实现自身的静态属性和静态属性代码块代码
- 实现父类非静态属性和非静态代码块
- 执行父类的构造函数
- 实现自身的非静态属性和非静态代码块
- 执行自身的构造函数
- 以下代码对第二种情况进行验证:
package test;
/**
*@author xpengfei
*@creat 2:49:53 PM Aug 31, 2017
*/
public class students1 {
public students1(){
System.out.println("students1的构造函数!");
}
{
System.out.println("这是Students1中的一段代码块!");
}
static{
System.out.println("这是students1中的一段静态代码块!");
}
}
students1用作父类,students2继承students1进行验证.
package test;
/**
*@author xpengfei
*@creat 2:51:08 PM Aug 31, 2017
*/
public class students2 extends students1{
public students2(){
System.out.println("students2的构造函数.hello students2!!");
}
{
System.out.println("这是students2中的一段代码块!");
}
static{
System.out.println("这是students2中的一段静态代码块!");
}
public static void main(String[] args) {
students2 s=new students2();
}
}
运行结果: