Sobes.tech
Junior

É possível substituir os construtores em Java?

sobes.tech IA

Resposta da IA

Não, em Java os construtores não são sobrescritos (overriding). A sobrescrita refere-se aos métodos da classe filha que têm a mesma assinatura (nome, tipo de retorno e lista de parâmetros) que um método na classe pai.

Em vez de sobrescrever, em Java, usam-se sobrecargas (overloading) para os construtores. Isto significa que numa mesma classe podem existir vários construtores com o mesmo nome, mas com listas de parâmetros diferentes (quantidade, tipos ou ordem).

A classe filha pode chamar os construtores da classe pai usando a palavra-chave super(...).

Exemplo de sobrecarga de construtores:

class MyClass {
    int value;
    String name;

    // Construtor padrão
    public MyClass() {
        this.value = 0;
        this.name = "default";
        // Chamada de outro construtor usando this()
        this(0, "default"); 
    }

    // Construtor sobrecarregado com um parâmetro
    public MyClass(int value) {
        this.value = value;
        this.name = "default";
    }

    // Construtor sobrecarregado com dois parâmetros
    public MyClass(int value, String name) {
        this.value = value;
        this.name = name;
    }
}