Nesneye Dayalı Programlama -20- Abstract


Merhabalar Arkadaşlar,

Bu yazımızda Abstract (Soyut) sınıflardan bahsedeceğiz.

Sınıfların Abstract Olması

Daha önceki yazılarımızda kalıtımdan bahsetmiştik. Birbirleriyle benzer işlev ve özelliklere sahip sınıfların kodlarını tekrar tekrar yazmaktansa kalıtım kullanarak bu ortak kodları tek bir sınıf altında toplayabiliriz.
Ancak oluşturduğumuz taban sınıftan nesne oluşturmasını istemiyorsak o sınıfı abstract tanımlamalıyız.

Örnek: Urun sınıfı abstract olarak tanımlandığından dolayı nesne üretilememektedir.



NOT : Sealed anahtar sözcüğü ile karıştırılmamalıdır. Sealed kalıtım vermesini engellerken, abstract nesne oluşturulmasını engellemektedir.

Abstract sınıfın özelliklerine bakacak olursak;
  1. New anahtar sözcüğü ile yeni bir örneği oluşturulamayan sınıflardır.
  2. Her ne kadar yeni bir örneği oluşturulmasa da kalıtım veren diğer sınıfların tüm özelliklerini taşırlar.
  3. Kalıtım verdikleri sınıfları bazı durumlarda yönlendirmeleri gerekebilir (mecbur bırakmaları), kendisinden kalıtım alan sınırlarda bu mecburiyetleri deklare ederek ezmek zorundadırlar.


Metot ve Özelliklerin Abstract Olması

C#'da abstract metotlar ve abstract property ler olarak adlandıracağımız ve alt sınıflarda yazılması mecburi olan iş mantıkları ancak ve ancak abstract sınıflar içerisinde olabilirler ve public veya protected olmak zorundadırlar.



Urun sınıfından kalıtım ile oluşturduğumuz Bilgisayar sınıfı uyarı vermektedir.
Uyarının detayına baktığımızda, zorunlu eklememiz gereken alanları gösteriyor.


Ctrl + .(nokta) tuşları ile detayına bakıyoruz.


Enter ile oluşturup içeriklerini aşağıdaki gibi düzenliyoruz.


Programımızda nesneyi oluşturup çalıştırıyoruz.


Ekran Görüntüsü


İyi çalışmalar dilerim.