package com.imooc.practice;class Parent{public Parent(){System.out.println("Parent构造方法执行!");}{System.out.println("Parent非静态语句块执行!");}static{System.out.println("Parent静态语句块执行!");}
}public class Child extends Parent{public Child(){System.out.println("Child构造方法执行!");}{System.out.println("Child非静态语句块执行!");}static{System.out.println("Child静态语句块执行!");}public static void main(String[] args){Child c = new Child();}
}

对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。 
而且子类的构造方法,不管这个构造方法带不带参数,默认的它都会先去寻找父类的不带参数的构造方法。如果父类没有不带参数的构造方法,那么子类必须用supper关键子来调用父类带参数的构造方法,否则编译不能通过。

转载于:https://www.cnblogs.com/langren1992/p/4737921.html

Java静态语句块、语句块、构造方法执行顺序相关推荐

  1. 父类静态代码块、非静态代码块、构造方法、子类静态代码块、子类非静态代码块、子类构造方法执行顺序

    父类 public class Father {static{System.out.println("父类静态代码块");}{System.out.println("父类 ...

  2. 静态代码块、非静态代码块、构造函数三者执行顺序

    主要探讨一下关于静态代码块,非静态代码块,构造函数的执行顺序. 如有错误,欢迎指出. 首先: 静态成员变量和静态代码块的优先级是一样的,先定义的先执行. 在创建一个对象的时候会执行非静态代码块和构造函 ...

  3. java实训 :异常(try-catch执行顺序与自定义异常)

    关键字: try:执行可能产生异常的代码 catch:捕获异常 finally:无论是否发生异常代码总能执行 throws:声明方法可能要抛出的各种异常 throw:手动抛出自定义异常 用 try-c ...

  4. 继承中的构造方法执行顺序

    继承中的构造方法执行顺序 在子父类中,创建子类对象,调用子类的构造方法, 在子类的构造方法的第一行代码如果没有调用父类的构造或者没有调用子类的其他构造,则默认调用父类无参构造. 为什么要调用父类构造? ...

  5. java静态代码块和构造方法_Java静态代码块和构造方法执行顺序

    package com.uno.staticBlock; import java.lang.reflect.Field; import java.util.Vector; /** * 验证静态代码块和 ...

  6. java 中的静态变量,静态代码块,动态代码块,构造方法执行顺序的深入探究

    要想完全弄懂这个执行顺序,需要我们先了解几个概念. 首先是类加载与对象的构造,类加载就是在第一次调用这个类的时候jvm虚拟机会通过类加载器在一个叫做方法区的逻辑内存中将所要用到的类的信息存放在里边,其 ...

  7. java加载类时静态代码块、构造代码块、构造方法执行顺序

    构造代码块作用:https://blog.csdn.net/hspingcc/article/details/54893853 package com.spring.partise;class A{A ...

  8. java静态代码块、静态方法、静态变量、构造代码块、普通代码块、成员变量执行顺序

    package smartt.styy.auth.model.voRsp;public class Test {static {String test5="555";//局部变量t ...

  9. 静态块、自由块及构造函数的执行顺序

    静态块和静态变量在类的加载时被执行:加载子类时,会预先加载父类,因此父类中如果有静态块,则最先执行之,然后立即执行子类的静态块: 如果一个类中有多个静态块,则按照编码的先后顺序执行 注:因为一个类只会 ...

  10. 初始化块和构造函数的执行顺序

    问题 在Java中,如果初始化块在构造函数之后出现,是会先执行构造函数还是初始化块? 结论 先直接给结论:初始化块无论在哪里出现,都会先于构造函数执行,初始化块的执行顺序就是在代码中的先后顺序 测试代 ...

最新文章

  1. jenkins+jmeter+ant+jmeter在Jenkins上报告
  2. linux命令应用之一
  3. 微信大更新,可以“远程控制”他人微信了!
  4. 【django】配置redis数据库【4】
  5. 关于cocopod命令
  6. python一行代码迷宫_通过Python代码实现走迷宫的方法
  7. 剑指offer之删除链表中重复的结点
  8. AI学习笔记(十)卷积神经网络
  9. SQL查看存储过程相关信息
  10. 在淘宝做前端的这三年 — 第三年
  11. 联想拯救者Y9000X 2020
  12. ListView演练 - 带有组头的汽车品牌展示
  13. 一个因全局变量引发的故事!
  14. metasploit怎么用? 进阶(msfvenom=payloads+encoders)篇 (゚益゚メ) 渗透测试
  15. Python制作卡点视频
  16. 预先下载的keras库中神经网络模型指定存放路径及如何上传的问题
  17. C++中垃圾回收机制中几种经典的垃圾回收算法
  18. 一款 ≥28倍变焦的4K高清会议云台摄像机动态功能
  19. bert中文情感分析二分类任务详解
  20. 计算机多媒体论文致谢,计算机专业论文致谢范文3篇

热门文章

  1. Library弱依赖打包
  2. 水滴状的自定义视图,让您摆脱单调的Dialog
  3. UIAutomator源码分析之启动和运行
  4. 关于String内存分配的深入探讨
  5. APUE读书笔记-18终端输入输出-09终端标识
  6. 优化大中型企业Internet连接
  7. Linux标准化:避免重蹈UNIX的覆辙
  8. 从Android support到Androidx
  9. java ognl 值栈_ognl-值栈基本操作
  10. js基础-23-websocket和ajax的区别