class Parent {
Parent() {
System.out.println("调用父类Parent()的构造方法");
}
public void doSomething() {
System.out.println("调用父类Parent中的doSometing()方法");
}
}
class Subparent extends Parent {
Subparent() {
super();
super.doSomething();
}
}
public class Subroutine extends Subparent {
Subroutine() {
System.out.println("调用子类Subroutine()的构造方法");
}
public static void main(String[] args) {
new Subroutine();
}
}
输出结果:
调用父类Parent()的构造方法
调用父类Parent中的doSometing()方法
调用子类Subroutine()的构造方法
问题:加粗部分调用的父类Parent()构造方法的输出怎么没有了?
实例化子类的过程中,自动调用父类的构造方法,为什么少了一次?
我觉得输出结果应该是下面这样:
调用父类Parent()的构造方法//实例化父类Parent()构造方法
调用父类Parent()的构造方法//实例化父类Subparent()构造方法中的super()调用的构造方法
调用父类Parent中的doSometing()方法//实例化父类Subparent()构造方法中的super.doSomething()的调用
调用子类Subroutine()的构造方法//实例化子类Subroutine()的构造方法。