博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java类内部代码执行顺序
阅读量:6212 次
发布时间:2019-06-21

本文共 894 字,大约阅读时间需要 2 分钟。

先看以下代码

public class HelloB extends HelloA{    public HelloB()    {    }    {        System.out.println("I’m B class");    }    static    {        System.out.println("static B");    }    public static void main(String[] args)    {        new HelloB();    }}class HelloA{    public HelloA()    {    }    {        System.out.println("I’m A class");    }    static    {        System.out.println("static A");    }}

执行代码后输出

static A
static B
I’m A class
I’m B class

该问题涉及:静态初始化代码块、构造代码块、构造方法

当涉及到继承时,按照如下顺序执行:
1、执行父类的静态代码块

static {        System.out.println("static A");    }

输出:static A

2、执行子类的静态代码块

static {        System.out.println("static B");    }

输出:static B

3、执行父类的构造代码块

{        System.out.println("I’m A class");    }

输出:I'm A class

4、执行父类的构造函数

public HelloA() {    }

输出:无

5、执行子类的构造代码块

{        System.out.println("I’m B class");    }

输出:I'm B class

6、执行子类的构造函数

public HelloB() {    }

输出:无

转载地址:http://rtdja.baihongyu.com/

你可能感兴趣的文章
扩展ACL(Extended ACL)
查看>>
Java正则系列: (2)量词
查看>>
通过VBS脚本提取IUSR和IWAM帐户的密码
查看>>
Debug add-type 的错误信息
查看>>
Virtual Server 2005 系统文件的安全设置
查看>>
Microsoft Office SharePoint Designer 2007 宣布免费
查看>>
Hyper-V Server V1 vs. R2
查看>>
Linux下多播的配置【十全十美】
查看>>
浅析Windows7的睡眠、休眠、混合睡眠、离开模式
查看>>
ExtJs 实现表单联动
查看>>
当Citrix License服务不可用时
查看>>
Managed anti-debugging – how to prevent users from attaching a debugger
查看>>
局域网互访六大问题综述
查看>>
Windows Server入门系列19 ARP欺骗原理
查看>>
从 if else 到 switch case 再到抽象
查看>>
Linux 服务器故障排除的前五分钟 (First 5 Minutes Troubleshooting A Linux Server)
查看>>
Dynagen最新版本发布
查看>>
远程注入进程
查看>>
在linux上oracle的安装与卸载
查看>>
项目经理如何管理团队(下)
查看>>