Un constructor es un método especial de una clase que se ejecuta automáticamente al crear un objeto.
Su función principal es inicializar los campos del objeto.

Características:

  • Tiene el mismo nombre que la clase.

  • No tiene tipo de retorno, ni siquiera void.

  • Puede haber varios constructores con distintos parámetros (sobrecarga). De manera que puedes crear objetos de formas distintas según la información que tengas disponible del objeto que quieres crear.

Las clases abstractas no pueden tener métodos constructores definidos, pues no pueden ser instanciadas.

La sentencia this() se utiliza para llamar a otro constructor de la clase que la invoca. Sirve para evitar repetir código entre constructores.

La sentencia super() se utiliza para llamar al constructor de la superclase.

El constructor de una subclase debe siempre invocar al constructor de su superclase como primera instrucción. Si el código fuente no incluye esa llamada, Java intentará insertar dicha llamada automáticamente.

En Java los constructores pueden tener cualquier modificador de acceso: public, protected, default (sin modificador) y private.
Cada uno tiene implicaciones diferentes en cuanto a quién puede crear objetos de esa clase.