Quote Originariamente inviata da Lodin Visualizza il messaggio
come mai quando si crea un nuovo oggetto B viene automaticamente chiamato il costruttore di A?
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.