JAVA,代码的输出内容判断。

JAVA,判断以下代码的输出内容。

输出内容是:

初始化消息
这是一条消息
初始化消息
初始化数据库消息
这是一条数据库连接消息

请问这里是根据什么判断的?以及为什么是这样的?需要注意的点是哪里? 请详细解释,谢谢。

img

Message是父类,实例化调用自身的 构造方法,然后调用自身的print方法
DatabaseMessage 是 子类,下面实例化的是子类,子类也调用自身的构造方法,不过进入子类构造方法后,默认有语句super(); 即调用父类的构造方法初始化,所以先打印父类的构造方法信息,然后再打印子类的构造方法;然后调用 print方法,因为实际实现类是子类,并且子类也覆写了 print方法,所以调用的是子类的print进行打印