6 java inheritance constructor
我已将此代码放入编译器中
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");
}
}
Run Code Online (Sandbox Code Playgroud)
它给了“ADemo” 为什么? 对于这种情况,我将不胜感激,并会提到编译器将如何处理这个问题
基类(您的情况下的类)的构造函数始终在您正在实例化的类(您的情况下的A类)的构造函数之前执行。ConstractorDemo这就是为什么A之前打印的原因Demo。
这个构造函数:
public ConstractorDemo(){
System.out.print("Demo");
}
Run Code Online (Sandbox Code Playgroud)
相当于:
public ConstractorDemo(){
super (); // prints A
System.out.print("Demo"); // prints Demo
}
Run Code Online (Sandbox Code Playgroud)