Esta es una pregunta sobre el estilo de codificación y prácticas recomendadas:¿Pones una llamada super() como el comienzo de tus constructores?
Como se explica en las respuestas a la pregunta unnecessary to put super() in constructor?, si se escribe un constructor para una clase que se supone que debe utilizar el valor por defecto (sin argumentos) constructor de la superclase, puede llamar super()
al comienzo de su constructor:
public MyClass(int parm){
super(); // leaving this out makes no difference
// do stuff...
}
pero también se puede omitir la llamada; el compilador actuará en ambos casos como si la llamada super() estuviera allí.
Entonces, ¿pones la llamada en tus constructores o no?
Por un lado, se podría argumentar que incluir el super()
hace las cosas más explícitas. OTOH, siempre me disgusta escribir código redundante, así que personalmente tiendo a dejarlo fuera; Sin embargo, lo veo regularmente en código de otros.
¿Cuáles son sus experiencias? ¿Tuviste problemas con uno u otro enfoque? ¿Tiene pautas de codificación que prescriben un enfoque?
BTW: Una pregunta relacionada (sólo para referencia):
Is there a reason to explicitly code a default constructor when there are no other constructors?
No, pero posiblemente porque casi todo el código que leí (¡y aprendí!) No. Podría simplemente estar perpetuando el mal estilo que aprendí. –