Sobes.tech
Junior — Middle

Sınıflar için sözleşmeler tanımlarken soyut sınıf ve arayüz kullanımı arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

C# dilinde soyut sınıf ve arayüzler sözleşmeleri tanımlamak için kullanılır, ancak temel farklara sahiptir:

  • Soyut sınıf metodların, alanların, yapıcıların ve özelliklerin uygulamasını içerebilir. Türevler için temel bir uygulama ve ortak işlevsellik belirlemek istediğinizde kullanılır.
  • Arayüz sadece metodların, özelliklerin ve olayların imzalarını tanımlar, uygulama içermez (C# 8.0'e kadar; C# 8.0'dan itibaren arayüzler varsayılan uygulama içerebilir).

Ayrıca, bir sınıf yalnızca bir soyut sınıftan kalıtım alabilir, ancak birden çok arayüzü uygulayabilir.

Örnek:

abstract class Animal
{
    public abstract void MakeSound();
    public void Sleep() { Console.WriteLine("Uyuyor"); }
}

interface IFlyable
{
    void Fly();
}

class Bird : Animal, IFlyable
{
    public override void MakeSound() { Console.WriteLine("Cıvıltı"); }
    public void Fly() { Console.WriteLine("Uçuyor"); }
}

Bu şekilde, soyut sınıf temel ortak davranışlar için uygundur, arayüz ise farklı sınıflar tarafından uygulanabilecek yetenekler kümesini tanımlar.