Junior — Middle
Qual é a diferença entre os modificadores de acesso private e protected na programação orientada a objetos?
sobes.tech IA
Resposta da IA
Na programação orientada a objetos (usando C# como exemplo), os modificadores de acesso private e protected diferem no nível de visibilidade dos membros da classe:
-
private — o membro da classe é acessível apenas dentro da própria classe. Nem subclasses nem outras classes podem acessá-lo.
-
protected — o membro da classe é acessível dentro da própria classe e em todas as suas subclasses (herdeiras), mesmo que estejam em um espaço de nomes diferente.
Exemplo:
class BaseClass
{
private int privateField = 1;
protected int protectedField = 2;
void Show()
{
Console.WriteLine(privateField); // Disponível
Console.WriteLine(protectedField); // Disponível
}
}
class DerivedClass : BaseClass
{
void ShowDerived()
{
// Console.WriteLine(privateField); // Erro: privateField não acessível
Console.WriteLine(protectedField); // Disponível
}
}
Assim, protected amplia o âmbito de visibilidade em comparação com private, permitindo que os herdeiros trabalhem com os membros protegidos da classe base.