Java语句的执行结构
2016-04-07 12:47
441 查看
1、Java语句的执行结构
a、执行父类的静态代码块
b、执行子的静态代码块
c、如果父类有非静态代码块,则执行,反之不执行。
d、执行父类的构造方法
e、如果子类有非静态代码块,则执行,反之不执行。
f、执行子类的构造方法
总结:父类静态代码块 > 子类静态代码块 > 父类非静态代码块 > 父类构造方法 > 子类非静态代码块 > 子类构造方法
例子:
public class Demo {
static {
System.out.println("1 " );
}
public static void main(String[] args) {
System.out.println("2");
new Child();
}
}
class Parent{
static {
System.out.println("3 " );
}
{
System.out.println("5 " );
}
public Parent() {
System.out.println("6 " );
}
构
}
class Child extends Parent{
static{
System.out.println("4 " );
}
{
System.out.println("7 " );
}
public Child(){
System.out.println("8 " );
上述程序中输出来的结果顺序就是12345678.
其中注意最先执行的是主函数类中的静态代码块,然后就是主函数中的方法,最后便是按照上述的执行顺序执行。
a、执行父类的静态代码块
b、执行子的静态代码块
c、如果父类有非静态代码块,则执行,反之不执行。
d、执行父类的构造方法
e、如果子类有非静态代码块,则执行,反之不执行。
f、执行子类的构造方法
总结:父类静态代码块 > 子类静态代码块 > 父类非静态代码块 > 父类构造方法 > 子类非静态代码块 > 子类构造方法
例子:
public class Demo {
static {
System.out.println("1 " );
}
public static void main(String[] args) {
System.out.println("2");
new Child();
}
}
class Parent{
static {
System.out.println("3 " );
}
{
System.out.println("5 " );
}
public Parent() {
System.out.println("6 " );
}
构
}
class Child extends Parent{
static{
System.out.println("4 " );
}
{
System.out.println("7 " );
}
public Child(){
System.out.println("8 " );
上述程序中输出来的结果顺序就是12345678.
其中注意最先执行的是主函数类中的静态代码块,然后就是主函数中的方法,最后便是按照上述的执行顺序执行。
相关文章推荐
- 自定义注释——Java
- Java常量,变量和数据类型
- Shiro学习(12)与Spring集成
- nested exception is java.io.FileNotFoundException: class path resource [spring/spring-datasource-mog
- eclipse下载安装
- Java回调机制解析
- Eclipse maven
- 快速排序(附Java实现和分析)
- 【算法】超大数组去重(Java语言实现)
- 应该被记住的 8 位 Java 人物
- Eclipse
- (MyEclipse配置Hibernate报错)SQL Error: 1146, SQLState: 42S02
- eclipse调试一个struts2例子时遇到的一些问题总结
- java.net.URISyntaxException的解决办法
- Spring中配置和读取多个Properties文件
- Java中 static/transient,final/volatile 说明
- 堆排序--Java实现
- Java ArrayList.toArray(T[]) 方法的参数类型是 T 而不是 E的原因分析
- Spring事务属性详解
- HIbernate4开发要注意的新特性