启动程序后调用命令

时间:2018-02-19 11:31:19

标签: java inheritance static instance

有人可以向我解释输出的顺序吗?尤其是"这个(构造函数中的D()1"会导致什么? 是否有一些"规则" ijn命令哪个变量被声明? (静态/实例等)

抱歉我的英语不好。

enter image description here

1 个答案:

答案 0 :(得分:0)

Java程序自上而下执行main() - 方法。从那里它做了代码告诉它做的任何事情。在您的情况下,它可以总结如下:

  1. 将该行打印到控制台。

  2. 创建新Dog时,必须首先创建其超类(Mammal)。 this("D(2)")调用类Dog的其他构造函数。

  3. 从那里实例化超类Mammal,因为它扩展了DomesticAnimal,必须先创建。并且由于变量da被声明为在构造函数外部初始化,因此首先完成。

  4. 构造函数完成并打印该行。

  5. 实例化Mammal的其余部分,与(3)中的相同

  6. 成功实例化超类后打印该行。与(4)

  7. 相同
  8. 创建所有超类后,初始化构造函数外部的类Dog的属性。与(5)和(3)相同。

  9. 打印行。与(6)和(4)

  10. 相同
  11. 其他构造函数方法已经竞争,因此最初调用的构造函数的其余部分执行。即该行已打印。