Öncelikli olarak visual studio da boş bir solution açalım ve içerisine bir class library ve birde windows uygulamasi ekleyelim.Class library'nin adini MyDll yapalim ve içine Otobüs.cs isimli classimizi ekleyelim;

 

 

Şu anda class'imizin yaninda public yaziyor bu ,başka bir class'dan otobüs class'ina ulaşılabileceği anlamına geliyor ama otobüs class'imin memberlari protected yani memberlarim sadece otobüs class'i miras verildiğinde ulaşılabilecek,o zaman oluşturdugumuz windows uygulamasının içerisine ÇiftKatliOtobüs isimli bir class ekleyelim ve MyDll namaspace ini referanslardan ekleyip,eklediğimiz dll'i çiftKatliOtobüs class'inin içerisinde using satiriyla belirtelim ve ÇiftKatliOtobus class'indan önce, form1 in load event'ine şu şatırlari yazalim;

 

evet durum tam tahmin ettiğimiz gibi.class public olduğu için Otobus class'ina ulaşılabiliyor ve bütün tiplerin babasi olan Object'den gelen methodlarin dişinda birşey yok.Ve eğer siz Otobüs class inin başindaki public yazisini kaldirip private olmasını sağlarsanız Otobüs class'inin uygulamanın içine hiç geçemediğini göreceksiniz

şimdide CiftkatliOtobüs class'ina otobüs class'ini miras vererek deneyelim,bu sefer hareket methoduna veya rengi propery sine ulaşabilmemiz gerekiyor;

 

 

Şimdi sira geldi Internal'e,otobus class'imiza geri donup public olaran erişim belirleyicisini internal yapalım.Öncelikli olarak siz MyDll'in içinde KirmiziOtobus isimli bir class yaratin ve bu class'i otobüs class'indan türeterek,hareket methodunu çekmeye çalışın ve sonucun olumlu oldugunu test edin.Text inizi yaptiktan sonra windows uygulamanız içerisindeki çift katliotobüs class'ini yeniden otobus class'indan türetmeye çalışın,bakın bakalım sonuç nasıl? 

 Evet otobüs artik türemiyor çünkü internal oldugu için sadece kendi dll'i içerisine public,dışarıya karşı her şekilde kapalı.instance da almaya çalışsanız aynı.Otobüs diye bir class artık yok,kaybolmuş : )

Şimdi en son bakacağımız erişim belirleyicisi ise protected, internal.daha öncede açıkladıgımız gibi kendi uygulamamız içerisinde internal ancak başka bir uygulama içerisinde protected gibi davranacak.Otobus class'imizi aşşağıdaki şekilde değiştirelim ;

 

böyle bir durumda otobüs class inin member'lari kendi dll i içerisinden miras yoluylada , direk instance alınarakta ulaşılabiliyor ancak kendi uygulamamız dışarısına çıktıgımızda mutlaka otobüs class'inin türetilmesini istiyor.sizde deneyerek sonucu görebilirsiniz.Umarim faydali olmuştur.