我已经将这段代码放入编译器
package com.employer.constractor;
public class ConstractorDemo extends A{
public ConstractorDemo(){
System.out.print("Demo");
}
public static void main(String[] args){
new ConstractorDemo();
}
}
class A {
A(){
System.out.print("A");
}
}
它给出了“ADemo” 为什么? 对于这种情况,我将不胜感激 并提及编译器将如何处理它
最佳答案
基类的构造函数(在您的例子中是 A
类)总是在您正在实例化的类的构造函数之前执行(在您的例子中是类 ConstractorDemo
)。这就是 A
在 Demo
之前打印的原因。
这个构造函数:
public ConstractorDemo(){
System.out.print("Demo");
}
相当于:
public ConstractorDemo(){
super (); // prints A
System.out.print("Demo"); // prints Demo
}
关于java - 哪个先执行,父构造函数还是子构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34491335/