Sobes.tech
Junior — Middle

Nesne yönelimli programlamada soyut sınıf ile arayüz arasındaki temel fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Soyut bir sınıf ile arayüz arasındaki temel fark, soyut sınıfın yöntemlerin uygulamasını ve durumu (alanlar) içerebilmesi, arayüzün ise sadece yöntemlerin imzalarını tanımlaması (C# 8.0'e kadar). Soyut sınıf, kalıtımcılar için temel bir uygulama ve ortak işlevsellik belirlemek istendiğinde kullanılırken, arayüz, sınıfların uygulaması gereken sözleşmeyi tanımlamak için kullanılır, bağımsız olarak hiyerarşilerinden.

Örnek:

// Soyut sınıf
public abstract class Animal {
    public void Eat() {
        Console.WriteLine("Yemek yiyor");
    }
    public abstract void MakeSound();
}

// Arayüz
public interface IMovable {
    void Move();
}

// Soyut sınıfı miras alan ve arayüzü uygulayan sınıf
public class Dog : Animal, IMovable {
    public override void MakeSound() {
        Console.WriteLine("Havlama");
    }
    public void Move() {
        Console.WriteLine("Koşmak");
    }
}