If you don’t define any constructors, the compiler will generate the default one , as described in the JLS: If a class contains no constructor declarations, then a default constructor with no formal parameters and no throws clause is implicitly declared.