我是吴京 2022-11-19 12:31 采纳率: 67.4%
浏览 0
已结题

java关于构造器的问题

class A {
   public A (a, b) {
    System.out.println(a+b);
  }
}

由上述代码块可见,类A并没有默认的构造函数,实际运行重载的有参构造函数时,系统是否会帮我们在第一行添加无参构造函数,例如实际运行
代码将变成

class A {
   public A (a, b) {
    this();
    System.out.println(a+b);
  }
}

会出现这样的情况以保证子类对象先构造完成吗

  • 写回答

2条回答 默认 最新

  • 夜郎king 2022博客之星IT其它领域TOP 12 2022-11-19 13:18
    关注

    两个地方不准确,
    1、每个类都会有一个默认的无参构造方法,不申明的话也会有。这是java的反射机制决定的。
    2、在继承关系中,构造方法中会调用super()方法,先完成父类的构造。从人类角度理解,先有父再有子。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月19日
  • 修改了问题 11月19日
  • 修改了问题 11月19日
  • 修改了问题 11月19日
  • 展开全部