İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Abstract Class

Bir veya daha fazla class'ın ortak özelliklerini içermesi için yazılmış, tek başına kullanılmayan class.

Biribiriyle benzer işlevler gören class'ların ortak özellikleri bir abstract class'ta toplanır ve sözkonusu class'lar bu class'ı extend eder. Böylelikle, aynı şeyleri her biri tekrar tekrar yazmamış olur. Abstract class, sadece başka class'lar kendisini extend etsin diye yaratılmıştır. Tek başlarına yaratılamaz ve kullanılamaz. Örneğin, Pigeon (Güvercin), Nigtingale(Bülbül), Hawk(Şahin), Eagle(Kartal) gibi kuş class'ları yapmak istiyoruz. Bunların bir çok ortak özelliği var. Uçmak, kanatları olmak ve yumurtlamak gibi. Bütün bu özellikler Bird diye bir class'a konur. Diğerlerinin bu class'ı extend etmek suratiyle bu özellikleri miras olarak almalarını sağlamak akıllıca olur. Bird class'ının abstract olması zorunludur zira dünyada 'Bu kuştur.' diyebileceğimiz somut bir canlı türü yoktur. 'Kuş' soyut bir kavramdır ve günlük dilde bir canlıya 'kuş' dememizin , türünü bilmememiz veya bilsek de genel özellikleriyle değinmek istememizdir.

Bazı durumlarda bütün alt türlerde aynı işlev bulunmasına rağmen hepsinin uygulanma biçimi farklı olabilir. Bu durumda abstract method'lar yazılır. Bir class'ın abstract olması içi class keyword'unden önce 'abstract' keyword'ü konur. Herhangi bir methodu abstract olan class mutlaka abstract olmalıdır. Ancak hiç bir methodu abstract olmadığı halde bir class absract yapılabilir.