Sobes.tech
Junior — Middle

Koja je razlika između modifikatora pristupa private i protected u objektno-orijentisanom programiranju?

sobes.tech АИ

Одговор од АИ

U objektno-orijentisanom programiranju (na primeru C#) modifikatori pristupa private i protected razlikuju se u nivou vidljivosti članova klase:

  • private — član klase je dostupan samo unutar same klase. Ni podklase, ni druge klase ne mogu da mu pristupe.

  • protected — član klase je dostupan unutar same klase i u svim njenim podklasama (naslednicima), čak i ako se nalaze u drugom prostoru imena.

Primer:

class BaseClass
{
    private int privateField = 1;
    protected int protectedField = 2;

    void Show()
    {
        Console.WriteLine(privateField);   // Dostupno
        Console.WriteLine(protectedField); // Dostupno
    }
}

class DerivedClass : BaseClass
{
    void ShowDerived()
    {
        // Console.WriteLine(privateField); // Greška: privateField nije dostupno
        Console.WriteLine(protectedField);  // Dostupno
    }
}

Tako, protected proširuje opseg vidljivosti u poređenju sa private, omogućavajući naslednicima da rade sa zaštićenim članovima osnovne klase.