Interface de abstract sınıflar da soyutlama için kullanılır. Aşağıda her ikisi için de detaylı yazılarımızı yazmıştık.
http://www.kemalburakyilmaz.com/interface-nedir/
http://www.kemalburakyilmaz.com/abstract-nedir/
Bu yazımızda aralarındaki farkları kısaca listeleyeceğiz. İş görüşmelerinde sorulan klasik sorulardandır 🙂
- Bir abstract sınıf soyut olan veya olmayan memberlara sahip olabilir. Fakat bir interface’deki tüm memberler soyutdur ve türetilmiş sınıflarda override edilmek zorundadır.
- Bir sınıf birden fazla interface’den türetilebilirken, yalnızca bir abstract class’dan türetilebilir.
- Abstract sınıflar içerisi dolu veya boş metod ve değişkenler bulundurabilir fakat interface’ler yalnızca içerisi boş metodlar bulundurabilir.
- Interface’ler access modifiers içeremez fakat abstract sınıflar bunları metodlar ve değişkenler için kullanabilir.