Premessa: una classe ha SEMPRE almeno 1 costruttore. Se il programmatore non ne definisce almeno uno esplicitamente, il compilatore ne inserisce uno implicito, di "default" che ha principalmente 2 caratteristiche: a) non ha argomenti e b) fa una chiamata super(); senza (ovviamente) argomenti per invocare il costruttore della super-classe. (nota: esiste una terza caratteristica ma ora non è importante)
Siccome B estende A, sono in relazione. E siccome in B NON c'è un costruttore esplicito, il compilatore inserisce quello di default, che appunto fa la chiamata super(). Che in questo caso non dà problemi perché in A esiste un costruttore senza argomenti.
Nota: se in A togliessi il primo costruttore, quello senza argomenti, la classe A compila ma la classe B così come è NON compilerebbe.


Rispondi quotando