Yazan : Şadi Evren ŞEKER

Nesne yönelimli programlama yaklaşımına göre bir sınıfın bütün metodları belirli olmak zorunda değildir. Kısaca bir mevhumun mücerret olması durumunda nesne yönelimli programlamadaki ifade biçimidir. Örneğin bir çalışan sınıfını düşünelim. Her çalışanın bir maaş aldığını biliriz ama her çalışanın maaş hesaplaması farklı şekillerde yapılır. İşte bu durumda çalışan sınıfının bir maaş hesaplama fonksiyonu bulunur ve bu maaş hesaplama fonksiyonunu her çalışan sınıfı kendisine göre yeniden düzenler.

public abstract class çalışan{

public abstract int maaş();

}

Yukarıdaki örnek sınıfın ve içerdiği örnek methodun ikisi de soyuttur. Basitçe soyut bir method içeren bir sınıf soyuttur. Bir methodun soyut olması ise içeriğinin tanımlanmamasıdır. Örneğin yukarıdaki maaş fonksiyonunun içeriği yazılmamış sadece prototipi yazılmıştır.

Şimdi yukarıdaki bu sınıftan miras alan yeni bir sınıf tanımlayalım:

public class sekreter extends çalışan{

public int maaş(){

return 1000;

}

}

Yukarıda da gösterildiği üzere sekreter sınıfı çalışan sınıfını miras almıştır (inheritance) ve dolayısıyla maaş fonksiyonu sekreter sınıfı için de tanımlı hale gelmiştir. Ancak bu fonksiyon soyut fonksiyon (abstract method , Mücerret fiil) olduğu için sektreter sınıfının iki seçeneği bulunmaktadır, ya bu sınıf fonksiyonun içeriğini dolduracak (müşahhas fiil olacak)  ve soyut olmaktan kurutulacak (overriding) ya da bu sınıfın içerisinde bu tanımlama yapılmayarak bu sınıf da soyut (mücerret) olacaktır.

public abstract class sekreter extends çalışan{

}

Yukarıdaki yazılmış sekreter örneği ise maaş fonksiyonunun somutlaştırılmamış halde bırakıldığı örnektir. Bu durumda sekreter sınıfında miras kalan bir soyut fonksiyon bulunmakta (maaş) ve dolayısıyla bu sınıf da soyut olmaktadır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir