Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Acesso a métodos e atributos de uma subclasse (herança)

Estou estudando herança e me deparei com a seguinte afirmação: 'A subclasse pode acessar todos os atributos e métodos públicos e protegidos da superclasse'. No entanto, minha compreensão é que membros protegidos são visíveis apenas dentro da classe onde foram definidos. Poderiam me explicar como uma subclasse, que é uma classe diferente, consegue acessar esses membros protegidos?

1 resposta
solução!

Olá Matheus! Tudo bem?

No Java, quando um atributo ou método é declarado como protected, ele é acessível não apenas dentro da própria classe onde foi definido, mas também por qualquer classe que herde dessa classe, ou seja, pelas subclasses, mesmo que estejam em pacotes diferentes. Isso é uma das características do modificador de acesso protected.

Por exemplo, se você tem a seguinte classe base:

public class Animal {
    protected String nome;

    protected void fazerSom() {
        System.out.println("Som de animal");
    }
}

E uma subclasse que herda de Animal:

public class Cachorro extends Animal {

    public void latir() {
        System.out.println(nome + " está latindo");
        fazerSom();
    }
}

No exemplo acima, a subclasse Cachorro pode acessar o atributo nome e o método fazerSom() da superclasse Animal porque ambos são protected. Isso demonstra que membros protegidos são visíveis para subclasses, permitindo que elas utilizem e até modifiquem esses membros, se necessário.

Espero que essa explicação tenha ajudado a esclarecer sua dúvida sobre herança e o acesso a membros protegidos.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.