🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Burak Kemal KOYUNCU / C# / Katılım Kullanımı

1-) C# - Katılım Kullanımı

C# – Kalıtım

Kalıtım, nesneye dayalı programlamanın en önemli özelliklerinden biridir. Kalıtım yolu ile sınıflar birbirinden türetilebilir. Bir sınıf diğer bir sınıftan türediği zaman, türediği sınıfın bütün özelliklerini içerir. Bunun yanında kendine has özellikler de barındırabilir.

class A

{

public int degisken_1;

public void Metot_1()

{

Console.WriteLine("A Sınıfının Metodu");

}

}

class B : A

{

public int degisken_2;

public void Metot_2()

{

Console.WriteLine("B Sınıfının Metodu");

}

}

Yukarıdaki örnekte; A temel sınıf, B ise türetilmiş sınıftır. Türetme işlemi “class B : A” kodu ile 11. satırda yapılmıştır. B sınıfı A sınıfından türetildiği için A sınıfı içerisindeki değişken ve metodu kalıtım yolu ile almaktadır.

class Program

{

static void Main(string[] args)

{

B b = new B();

b.degisken_1 = 10;

b.Metot_1();

b.degisken_2 = 15;

b.Metot_2();

}

}

Türetme işleminden dolayı B sınıfı, A sınıfı içerisindeki “degisken_1” ve “Metot_1()” elemanlarını kendi içerisinde tanımlanmış gibi kullanabilmektedir.

Türetilmiş sınıf, temel sınıf içerisindeki değişkenleri ve metotları kendi içerisinde tanımlanmış gibi kullanabilir. Ancak temel sınıf, türetilmiş sınıftaki değişkenleri ve metotları kullanamaz.

 

Erişim Belirteçleri

Türetilmiş bir sınıfa, temel sınıftaki elemanlardan sadece public ve protected olarak tanımlananlar aktarılır. Erişim belirteci private olan elemanlar kalıtım ile aktarılmaz.

Erişim Belirleyicisi: Metot ve özelliklere olan erişimin sınırlarını belirtmektedir. (Bknz: C# – Sınıflar)

  1. Private: Sadece tanımlandığı sınıf içerisinden erişilebilir. (Kalıtım ile aktarılmaz.)
  2. Public: Her yerden erişilebilir. (Kalıtım ile aktarılır.)
  3. Internal: Sadece bulunduğu projede erişilebilir. (Kalıtım ile aktarılır.)
  4. Protected: Tanımlandığı sınıfta ve o sınıfı miras (kalıtım) alan sınıflardan erişilebilir. (Kalıtım ile aktarılır.)

Peki bu durum da public ile protected belirteçleri arasındaki fark nedir? 

TemelSinif‘dan TuretilmisSinif‘a kalıtım yoluyla aktardığımız “degisken_1 (protected)” ve “degisken_2 (public)” elemanlarını TuretilmisSinif içerisinde kullanabiliriz. Ancak TuretilmisSinif‘dan oluşturduğumuz bir nesne üzerinden sadece “degisken_2” elemanına erişebiliriz. Erişim belirteci protected olan degisken_1 elemanına başka bir sınıftan erişemeyiz. Bunun nedeni; Erişim belirteci protected olan elemanlar tanımlandıkları sınıfta ve  kalıtım yolu ile aktarıldıkları sınıflar da private elemanların özelliklerini gösterirler.

Erişim belirteci protected olan elemanların private elemanlardan tek farkı kalıtım yolu ile aktarılabiliyor olmalarıdır. Eğer türeme söz konusu değilse protected olarak bildirilen elemanlarla private olarak bildirilen elemanlar arasında bir fark kalmaz. Erişim belirteci protected olan elemanları, kalıtım yolu ile aktarılabilen private elemanlar olarak düşünebiliriz.

 

 2021 Ocak 21 Perşembe
 454