子类调用父类构造方法的问题?
如下关于static方法运行结果为?
public class Hello extends BaseClass {
public static void main(String[] arg) {
new Hello();
}
public final static void test() {
System.out.println("Hello");
}
}
class BaseClass {
BaseClass() {
test();
}
public static void test() {
System.out.println("BaseClass");
}
}
这个题运行的结果是baseclass。
我知道他是调用咯父类的构造函数,所以会输出baseclass,但是我在Hello{}里写了一个构造函数,他还是会先调用父类的构造函数,再调用自己再定义的构造函数,意思就是父类的构造函数和自身的构造函数都要调用,不解呀,子类是不是在没构造函数的时候,如果要用就会调用父类的?但是为什么子类自身有了构造函数,这里为什么他还要调用父类的构造函数??为什么呀??