Abstract ve Interface Nedir? Aralarındaki Farklar Nelerdir?

Tahir Can Yıldız
Kodcular
Published in
2 min readOct 10, 2023
Interface ve Abstract Class

C# Programlama Dilinde Abstract ve Interface Kavramları: Farkları ve Kullanımları

C# programlama dilinde “Abstract” ve “Interface” iki önemli kavramdır ve her ikisi de nesne yönelimli programlamada kullanılır. Her ikisi de farklı kullanım senaryolarına sahiptir. İşte bu iki kavramın anlamları ve farkları:

Soyut Sınıf (Abstract Class) Nedir?

Soyut sınıflar, özelliği olmayan ve tamamlanmamış sınıflardır. Bu sınıflardan doğrudan nesne oluşturulamaz. Genellikle diğer sınıfların temelini oluşturan sınıflardır.

Nasıl Kullanılır?

Soyut sınıflar, “abstract” anahtar kelimesi ile tanımlanır ve içerisinde soyut (abstract) metotlar ve somut (concrete) metotlar bulunabilir. Somut metotlar, soyut sınıfın türetilen sınıfları tarafından ezilebilir (override) veya kullanılabilir.

Farklılık

Soyut sınıfların nesneleri oluşturulamazken, türetilen sınıflar (alt sınıflar) bu sınıfın metotlarını uygulamak zorundadır. Bir sınıf yalnızca bir soyut sınıftan türetilir.

Arayüz (Interface) Nedir?

Bir arayüz, sadece metot bildirimlerini içeren bir yapıdır ve herhangi bir uygulama içermez. Arayüzler, birden fazla sınıf tarafından uygulanabilir.

Nasıl Kullanılır?

Bir sınıf, bir veya birden fazla arayüzü “implements” anahtar kelimesiyle uygulayabilir. Sınıf, arayüzde tanımlanan tüm metotları uygulamak zorundadır.

Farklılık

Arayüzler sadece metot bildirimlerini içerir ve uygulanacak sınıfların bu metotları gerçek içerikle doldurmasını sağlar. Bir sınıf birden fazla arayüzü uygulayabilir.

Hangisini Kullanmalıyım?

  • Soyut sınıflar, ortak metotları ve özellikleri paylaşan sınıflar için kullanışlıdır. Alt sınıflar, temel soyut sınıfı genişletebilirler.
  • Arayüzler, farklı sınıfların aynı metotları uygulamalarını sağlar ve çoklu kalıtım sağlar.

Her iki kavramın da kullanımı projenizin gereksinimlerine bağlıdır. Soyut sınıflar, ortak davranışları modellemek için kullanışlıdır, arayüzler ise sınıflar arasında bir sözleşme sağlar. Projenizin ihtiyaçlarına göre hangi yapının daha uygun olduğunu seçebilirsiniz.

Bu yazı, C# programlama dilinde Abstract ve Interface kavramları arasındaki farkları anlatan bir temel bilgi sunmaktadır. Daha fazla ayrıntı ve örnekler ekleyerek bu temel bilgiyi geliştirebilirsiniz.

--

--