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 ✓.