Questa è una domanda di codifica stile e pratiche raccomandate:Metti una chiamata a super() all'inizio dei tuoi costruttori?
Come spiegato nelle risposte alla domanda unnecessary to put super() in constructor?, se si scrive un costruttore per una classe che si suppone di utilizzare l'impostazione predefinita (no-arg) costruttore dal superclasse, si può chiamare super()
all'inizio del costruttore:
public MyClass(int parm){
super(); // leaving this out makes no difference
// do stuff...
}
ma si può anche omettere la chiamata; il compilatore agirà in entrambi i casi come se la chiamata super() fosse presente.
Quindi, metti la chiamata nei tuoi costruttori o no?
Da un lato, si potrebbe obiettare che includere lo super()
rende le cose più esplicite. OTOH, non mi piace scrivere codice ridondante, quindi personalmente tendo a lasciarlo fuori; Lo vedo comunque regolarmente in codice dagli altri.
Quali sono le tue esperienze? Hai avuto problemi con l'uno o l'altro approccio? Avete linee guida per la codifica che prescrivono un approccio?
BTW: Una questione collegata (solo per riferimento):
Is there a reason to explicitly code a default constructor when there are no other constructors?
Non ce l'ho, ma probabilmente perché quasi tutto il codice che ho letto (e imparato da!) No. Potrei semplicemente perpetuare lo stile cattivo che ho imparato. –