Oie Flavio, tudo bem contigo?
Depende do que é colocado dentro do construtor, se o construtor da classe pai não fizer inicialização de nenhum atributo a classe filha não precisará usar o super() ou sequer criar um construtor, segue exemplo:
Subclasse:
public class Pai {
private String nome;
public Pai() {
System.out.println("Sou a classe pai");
}
}
Classe Filha:
public class Filho extends Pai{
}
Classe Teste:
public class Teste {
public static void main(String[] args) {
new Filho();
}
}
Resultado:
"Sou a classe pai"
Como podemos observar acima, a subclasse sempre irá chamar o construtor da superclasse, e nesse caso como o construtor da super classe só apresenta um "sysout" e não recebe qualquer parâmetro, a subclasse não possui a necessidade de deixar explicito no construtor dela, sendo desnecessário chamar o método "super()".
Agora segue outro exemplo:
Super classe:
public class Pai {
private String nome;
public Pai(String nome) {
this.nome = nome;
}
}
Subclasse:
public class Filho extends Pai{
public Filho(String nome) {
super(nome);
}
}
Teste:
public class Teste {
public static void main(String[] args) {
new Filho("Eduardo");
}
}
Como mostrado acima, quando é feito a inicialização de um atributo usando um dado recebido como argumento, é necessário declarar o construtor da subclasse e usar o método "super".
Tem um artigo muito bom que fala sobre esse tema de construtores e com certeza vai te agregar muito, segue o link:
Espero ter ajudado, qualquer outra dúvida é só mandar por aqui que estarei disponível :)
Bons estudos!