Sobes.tech
Junior — Middle

Obyekt yönümlü proqramlaşdırmada private və protected giriş modifikatorları arasında nə fərq var?

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırmada (C# nümunəsi ilə) giriş modifikatorları private və protected, sinif üzvlərinin görünürlük səviyyəsində fərqlənir:

  • private — sinif üzvü yalnız sinif daxilində əlçatandır. Hər hansı bir alt sinif və ya digər sinif ona daxil ola bilməz.

  • protected — sinif üzvü, sinif daxilində və onun bütün alt siniflərində (miras alanlar) əlçatandır, hətta onlar başqa ad məkanında olsa belə.

Misal:

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

    void Show()
    {
        Console.WriteLine(privateField);   // Mövcuddur
        Console.WriteLine(protectedField); // Mövcuddur
    }
}

class DerivedClass : BaseClass
{
    void ShowDerived()
    {
        // Console.WriteLine(privateField); // Xəta: privateField əlçatan deyil
        Console.WriteLine(protectedField);  // Mövcuddur
    }
}

Beləliklə, protected, private ilə müqayisədə görünürlük sahəsini genişləndirir və miras alanların əsas sinfinin qorunan üzvləri ilə işləməsinə imkan verir.