java继承关系中静态代码块、非静态代码块的执行顺序
2017-05-24 22:29
323 查看
class Parent { private String name = setName(); private static Parent p = new Parent("父类"); public Parent() { } public Parent(String name) { System.out.println("父类构造器"); this.name = name; } /** * @return */ protected String setName() { System.out.println("父类非static变量进行赋值"); return "aaa"; } static { p = new Parent("ghl"); System.out.println("父类static"); } public void getName() { System.out.println(name); } public void eat() { System.out.println("父类方法"); } } class Child extends Parent{ private String name = setName(); private static Child c = new Child("子类"); public Child() { } public Child(String name) { super(name); System.out.println("子类构造器"); this.name = name; } protected String setName() { System.out.println("子类非static变量进行赋值"); return "bbb"; } static { System.out.println("子类static"); } public void getName() { System.out.println(name); } public void eat() { System.out.println("子类方法"); } public static void main(String[] args) { Child c = new Child(); } }
运行结果:
父类非static变量进行赋值
父类构造器
父类非static变量进行赋值
父类构造器
父类static
子类非static变量进行赋值
父类构造器
子类非static变量进行赋值
子类构造器
子类static
子类非static变量进行赋值
子类非static变量进行赋值
相关文章推荐
- JAVA继承关系中静态代码块、非静态代码块的执行顺序
- JAVA继承关系中静态代码块、非静态代码块,构造函数的执行顺序
- 一个关于继承关系中静态快、成员变量、构造体代码的执行顺序的Java代码
- Java继承中父类子类构造方法、静态代码块、非静态代码块的执行顺序
- Java继承关系中静态代码块的顺序问题
- java继承中父类和子类静态、非静态代码块,构造函数,静态方法的执行顺序
- 三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解
- 继承关系中,代码执行的顺序。静态代码块、静态方法、构造方法
- Java子类继承父类,静态代码块、普通代码块、构造代码块的执行顺序
- java静态代码块和构造方法执行顺序
- java中的静态代码块、构造代码块、构造函数执行顺序
- java静态代码块、初始化块和构造方法的执行顺序
- [Java]Java静态代码块、静态函数、动态代码块、构造函数等的执行顺序
- Java子父类间静态代码块、构造代码块、构造方法的执行顺序
- java静态代码块、初始化块和构造方法的执行顺序
- 关于Java中静态代码块以及构造函数的执行先后顺序
- java静态代码块、初始化块和构造方法的执行顺序
- [JAVA]静态代码块及执行顺序
- java静态代码块和构造方法执行顺序
- java静态代码块和构造方法执行顺序