Sobes.tech
Junior

Como é que a classe filha utiliza a funcionalidade da classe pai?

sobes.tech IA

Resposta da IA

Através de herança: a classe filha recebe os membros públicos e protegidos da classe pai.

  • Acesso direto: Pode-se aceder diretamente aos campos e métodos públicos e protegidos do pai pelo seu nome dentro da classe filha.
  • Palavra-chave super: Usada para chamar o construtor do pai ou para aceder aos métodos/campos sobrescritos do pai quando na classe filha há membros com o mesmo nome.
  • Sobrescrita (overriding): Os métodos do pai (que não sejam final) podem ser sobrescritos na classe filha, alterando o seu comportamento.
// Exemplo de classe pai
class Parent {
    protected int parentValue;

    public Parent(int value) {
        this.parentValue = value;
    }

    public void displayParentValue() {
        System.out.println("Valor do pai: " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("Este método não pode ser sobrescrito.");
    }
}

// Exemplo de classe filha
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // Chamada ao construtor do pai
        this.childValue = childValue;
    }

    // Sobrescrever método do pai
    @Override
    public void displayParentValue() {
        System.out.println("Valor sobrescrito do pai: " + parentValue); // Acesso ao campo protegido do pai
    }

    public void displayChildValue() {
        System.out.println("Valor da criança: " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // Chamada ao método do pai via super
    }
}