C Sharp’da Abstract Class ve Interface Arasındaki Farklar

C Sharp’da Abstract Class ve Interface Arasındaki Farklar
C Sharp’da Abstract Class ve Interface Arasındaki Farklar
Yazılım Kodu Kanalına Abone Olun

Herkese merhaba,

Bu yazıda C Sharp’da Abstract Class ve Interface arasındaki farklar ile ilgili bilgi vermeye çalışacağım.

C Sharp veya Java tarafında, iş ilanı mülakatlarında genellikle bu tür sorular sorulur. Aslına bakarsanız bu kavramların anlaşılması basit gibi görünse de oturması ve kullanması zaman alan kavramlardır. Bu tür sorular işe alınacak kişinin hem yazılım ilgisini, bilgisini ölçmek, hem de kendini ne kadar yetiştirdiğini de görmek amacıyla sorulur. Bilemeyenleri eleyenler olduğu gibi başka yönlerine bakarak işe alan firmalar da olabilir. Bu başlığı okuyorsanız emin olun yazılımcı olma yolunda ve kendinizi yetiştirme yolunda herkesten bir adım öndesiniz demektir. Çünkü gerçek yazılımcılar meraklı, araştırmacı, öğrendiklerini uygulamaya dökebilen insanlardır.

Konumuza dönersek

  1. Abstract Class’lar Constructor içerebilir, Interface’ler Constructor içermez.
  2. Abstract Class’lar Static üyeler içerebilir, Interface’ler Static üyeler içermez.
  3. Abstract Class’lar ile Access Modifier kullanılabilir, Interface’lerde her meMethod public kabul edilir.
  4. Abstract Class’lar’da is-a ilişkisi vardır. (Sınıfın ait olduğu kimliği ve özellikleri belirtmek kullanılırlar.) Interface can-do ilişkisi vardır. Sınıfın yapabileceği kabiliyetleri, yetenekleri belirtmek için kullanılır.
  5. Bir Class sadece bir tane Abstract Class’ı Inherit edebilir. Bir sınıf birden fazla Interface’i Inherit edebilir.
  6. Abstract Class’larda ortak olan davranılşlar Base olarak tanımlanır ve kullanılır. Birçok sınıf sadece ortak Method’ları kullanıyorsa Interface’den türetilmeleri doğru bir karar olacaktır.
  7. Abstract Class Method, Fields, Contants vs üyeleri içerebilir, Interface’ler sadece Method imzalarını içerirller yani Method’ların içleri boştur.
  8. Türetilen Class’lar Abstract Class’ın bir kısmını veya tamamını Implemente edebilir, Interface’ler tüm tanımlanmış Methdod’ları Implemente etmek zorundadır. Aksi durumda hata alırsınız.
  9. Abstract Class’lar Method imzaları ve Implementasyonları içerebilir, Interface’ler sadece Method imzası içerirler.
  10. Her ikisi de new anahtar sözcüğü ile oluşturulamazlar.
  11. Abstract Class’lar Constructor ve Destructors methodlar bulundabilir. Interface’ler bulunduramaz.
  12. Her ikisini de kalıtım (Inheritance) uygularken kullanırız.
  13. Abstract Class’lar, türetilmiş Class’larda uygulanması gereken Abstract Methodlar içerir. Class tanımındaki Static anahtar sözcüğü, sınıftaki tüm Methodların’da Static olduğu anlamına gelir ve Static yöntemler miras alınamaz veya geçersiz kılınamaz ve bu nedenle Abstract Class’lar Static olamazlar. Aynı şekilde Interface’lerde Static olamazlar.
  14. Interface birden fazla interface’den Inheritance alabilir.
  15. Interface, nesnenin ne yapması gerektiğini belirler ama nasıl yapması gerektiğini belirlemez.

C Sharp’da Abstract Class ve Interface Arasındaki Farklar ile ilgili anlatacaklarım bu kadar.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

Aşağıdaki yazıları da inceleyebilirsiniz...

Sitedeki yazıları kopyalamak yasaktır.