静态代码块,普通代码块,构造函数先后顺序

Arisbin 2017-07-17 09:15:36
/*对于父类中的构造函数,普通代码块,静态代码块中的先后顺序
顺序是静态代码块,普通代码块,构造函数。对于子类继承父类,且子类
中也有自己的静态代码块,普通代码块,构造函数。当我们实例化一个对象时
首先输出的是父类静态代码块,子类静态代码块,父类普通代码块,父类构造函数
子类普通代码块,子类构造函数。
*/
简单举例:
class HelloA{

public HelloA(){
System.out.println("HelloA");
}

//普通代码块
{
System.out.println("I am a class");
}
//静态代码块
static{
System.out.println("static A");
}
}

public class HelloB extends HelloA{
public HelloB(){
System.out.println("helloB");
}

{
System.out.println("I am a class");
}
static{
System.out.println("static B");
}

public static void main(String[] args){
new HelloB();
}
}
/*
输出结果:static A
static B
I am a class
HelloA
I am a Class
HelloB
*/
...全文
259 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Arisbin 2017-07-19
  • 打赏
  • 举报
回复
嗯,说的有道理,不过,这样也可以看出来吧
第一片心意 2017-07-17
  • 打赏
  • 举报
回复
i am a class A类和B类中输出这句话时,有区别才能看出效果。
李德胜1995 2017-07-17
  • 打赏
  • 举报
回复

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧