Java Ders 16 – Soyut Sınıf (Abstract Class)

Java Derslerinde bugün Soyut Sınıf (Abstract Class) konusundayız. Soyut Sınıf ortak özellikleri olan sınıfların tek bir noktadan türetilmesi için yazılırlar. Bu sayede kod yükü azaltılır. Bu işlemi yapabilmek içinse Kalıtım (Inheritance) kullanılır. Soyut Sınıflardan nesne türetilmez. Abstract nitelemesi alan her sınıf soyut olur.

Java Soyut Sınıf (Abstract Class) Neden Gereklidir?

Bazı durumlarda yapılacak bir işe uygun olan somut üst sınıf tanımlamak mümkün olmayabilir. Örneğin Balıklar, Kuşlar, Sürüngenler gibi farklı hayvan sınıflarını düşünelim. Bu sınıfların ortak özellik ve davranışları vardır. Bu sınıfları bir üst sınıf belirlemeyi düşünebiliriz fakat belirlediğimiz üst sınıfın metotları değişeceği için bunu soyut olarak tanımlamak daha doğru olacaktır. Hayvanlar isimli soyut bir sınıfı tepe sınıf olarak belirlersek yemekYeme() isimli gövdesiz bir metot yazıp bunu alt sınıflarda tekrardan kurgulayabiliriz. Yani bu sayede hayvanların yemek yemelerini bir standarta bağlamış oluruz.

Soyut Sınıf (Abstract Class) Nasıl Yazılır?

Soyut Sınıf bildirimi için abstract anahtar kelimesi kullanılır. Ön takı olarak kullandığımız bu kelime sınıfı soyut olarak niteler. Aşağıdaki örneği inceleyelim. Açıklamaları yorum satırı olarak bıraktım. Özellikle soyut sınıftan nesne oluşturma kısmına bakınız böyle bir işlem mümkün değildir hataya neden olacaktır.

Soyut Sınıf (Abstract Class) Örneği

Yukarıdaki örnekte Baliklar ve Kuslar sınıfları Hayvanlar soyut sınıfını miras almışlardır. Gövdesiz yemekYe metodunu her iki sınıfta kendisi için kurgulamış ve belli bir standarda bağlamıştır. Soyut sınıf miras alınırken extends anahtar kelimesi kullanılmış. Görüldüğü gibi Baliklar ve Kuslar sınıflarından nesne türetip metotlarına erişebiliyoruz.

Bugünkü Java Dersimizde Soyut Sınıfları işledik. Normal Sınıflardan farkı Soyut Sınıflardan nesne türetilemiyor oluşudur. Ayrıca belli bir standart oluşturmak istiyorsak kullanmamız gereken bir yapıdır. Bir sonraki dersimizde görüşmek üzere.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.