静态块 和构造器在继承情况下执行顺序
来源:互联网 发布:minitab比较多组数据 编辑:程序博客网 时间:2024/06/05 12:00
父类静态块初始化---->子类静态块初始化---->父类非静态块初始化---->父类构造方法---->子类非静态块初始化---->子类构造方法。(先静后动,先父后子)
下面程序的运行结果是什么()
class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println("I'm A class"); } static { System.out.println("static A"); }}public class HelloB extends HelloA { public HelloB() { System.out.println("HelloB"); } { System.out.println("I'm B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new HelloB(); }}
答案:
static Astatic BI'm A classHelloAI'm B classHelloB
解析:说实话我觉得这题很好,考查静态语句块、构造语句块(就是只有大括号的那块)以及构造函数的执行顺序。
对象的初始化顺序:(1)类加载之后,按从上到下(从父类到子类)执行被static修饰的语句;(2)当static语句执行完之后,再执行main方法;(3)如果有语句new了自身的对象,将从上到下执行构造代码块、构造器(两者可以说绑定在一起)。
0 0
- 静态块 和构造器在继承情况下执行顺序
- 在继承条件下构造函数、代码块、静态代码块执行顺序
- 静态代码块和构造器的执行顺序
- java父类子类中静态块非静态块构造方法的执行顺序和继承
- java继承中父类和子类静态、非静态代码块,构造函数,静态方法的执行顺序
- Java继承中父类子类构造方法、静态代码块、非静态代码块的执行顺序
- JAVA继承关系中静态代码块、非静态代码块,构造函数的执行顺序
- 当子类继承父类时,构造块,静态块,静态方法的执行顺序
- 静态语句块,非静态语句块,构造方法在子类和父类的执行顺序
- java静态代码块和构造方法执行顺序
- java静态代码块和构造方法执行顺序
- java静态代码块和构造方法执行顺序
- 黑马程序员---静态代码块和构造方法执行顺序
- java 静态代码块和构造方法执行优先顺序
- Java静态代码块和构造方法执行顺序
- Java的块,静态块,构造函数,继承的执行先后顺序
- Java的块,静态块,构造函数,继承的执行先后顺序
- 静态块、动态块、构造函数、继承函数等的执行顺序
- Spark 之RDD API大全
- 基本数据结构——图
- 4.11
- 高位低位存储方式以及数组地址细节
- 题目1036:Old Bill
- 静态块 和构造器在继承情况下执行顺序
- URAL1993-This cheeseburger you don't need
- HDU 4920 Matrix multiplication 暴力(bitset)
- Maven聚合和继承
- J2EE:MVC 模式
- SSL P2643 2016东莞市特长生考试 村庄重建
- Swift实现指纹识别
- String 详解
- 开启TCP BBR拥塞控制算法