Abstarct Class kullanımı ile Interface arasında ne fark vardır? Abstract class’lar ve interfaceler kullanim olarak birbirlerine benzedikleri icin bu soru çoğu kisinin kafasini karistiran bir sorudur.
- Interface’ler çoklu kalıtımı sağlamaya yardımcı abstract classlar ise çoklu kalıtımı desteklemez.
- Interface‘ lerde metodların içerisini dolduramayız ama abstract classlarda doldurabiliriz . Böylece bütün alt sınıfların belli bir özelliğe sahip olmasını sağlayabiliriz.
- Interface ile yapabildiğimiz herşeyi hatta daha fazlasını abstract classlar ile de yapabiliriz.
- Eğer türeteceğimiz classlarda belli başlı varsayılan özellikleri tekrar tekrar kopyala-yapıştır yapmak istemiyorsak o zaman abstract class kullanmamız gerekir. Çünkü abstract classlarla bir metodu tüm alt classlarda varsayılan metod şeklinde tanımlayabiliriz ve alt classlarda bunları tekrar yazmamıza gerek kalmaz kalıtımla aktarılmış olur.
- Kalıtım sağlamak istiyorsak abstract classlar kullanmamız gerekir.
- Abstract classları kullanmak hız açısından avantaj sağlar.
- Interface de yeni bir metod yazdığımız zaman bu interfaceden implement ettiğimiz tüm classlarda bu metodun içini tek tek doldurmak gerekiyor ancak abstract classlarda durum farklıdır burada bir metod tanımlayıp içini doldurduğumuzda abstract sınıfımızdan türetilmiş bütün sınıflar bu özelliği kazanmış olur.
Abstract class ile Interface arasındaki farkı en açıklayıcı şekilde anlatan makaleydi. Ellerinize sağlık 🙂