Quando é dado:
new Z();
uma nova instancia de X é criada.
X tem como atributo Y, q cria uma nova instancia de Y ( 1º exibido ).
O construtor de X é chamado, o obj é criado e exibe X ( 2º exibido ).
Parecido com X, Z tem um atributo Y, q cria uma nova instancia de Y, q chama seu construtor, q exibe Y novamente ( 3º exibido).
e por fim,
o construtor de Z é chamado, e exibe Z (4º exibido).
bem é ± isso.
1º os dados menbros sao declarados, e neste caso, sao logo instanciados.
2º os construtores são chamados.
e como tem herança, é acrescentada a essa ordem a superClasse.