Vorrei sapere perchè questo codice:


public class MainClass2 {
public static void main(String args[]) {
C1 c=new C1(); }}

------------------------------
abstract class A1 {
A1() {
System.out.println("A"+m1());
m1();}

abstract public int m1();
}

------------------------------------------

class B1 extends A1 {
B1() {
System.out.println("D");}
public int m1() {return 10;}}
---------------------------------------

class C1 extends B1 {
C1() {System.out.println("C");}}
--------------------------------------

Perchè stampa A10 D C !?

vorreste spiegarmelo!?

grazie.....