您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

JAVA初始化块

JAVA初始化块

不会。初始化块直接复制到构造函数中。显然那里也有一个隐式的超级。所以你的例子变成

public class Foo {
  public Foo()
  {
    {System.out.println("Foo init");} // initializer.
    {System.out.println("Foo constr");}
  }
}

public class Main extends Foo {
  public Main()
  {  
    super(); // super constructor.
    {System.out.println("Main init");} // initializer.
    {System.out.println("Main constr");}
  }
  public static void main(String[] args) {
    new Main();
  }
}

这解释了您观察到的行为

Foo init
Foo constr
Main init
Main constr
java 2022/1/1 18:37:29 有343人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶