一道题理清父子类中 静态代码块和构造方法执行顺序
一道题理清父子类中 静态代码块和构造方法执行顺序
猴亮屏 发表于4年前
一道题理清父子类中 静态代码块和构造方法执行顺序
  • 发表于 4年前
  • 阅读 88
  • 收藏 5
  • 点赞 0
  • 评论 1

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 闲逛有收货,泡bar有前途!

我有一道经典的试题,倒在上面的人许多,今天就剧透了,呵呵:

01 public class A {
02     public A(){
03         System.out.println("A3");
04     }
05     {
06         System.out.println("A1");
07     }
08     static {
09         System.out.println("A2");
10     }
11 }

再写个B类

01 public class extends A {
02     public B(){
03         System.out.println("B3");
04     }
05     {
06         System.out.println("B1");
07     }
08     static {
09         System.out.println("B2");
10     }
11
12
13     public static void main(String[] args) {
14         A a1=new B();
15         B a2=new B();
16     }
17 }

然后执行B类的main方法,请给出在控制台输出的内容是怎样的。

答案:

1.先执行静态代码块:2

2.静态代码块按类加载的顺序:A B

3.先初始化父类再初始化子类:A B

4.先执行类代码块再执行构造方法:1 3

综上:A2 B2 A1 A3 B1 B3 A1 A3 B1 B3


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
猴亮屏
粉丝 25
博文 469
码字总数 47733
作品 2
评论 (1)
zqq90
好例子
×
猴亮屏
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: