Kodkitabi

Arayüzler (Interfaces)

Sınıfların uyması gereken sözleşmeler olan arayüzlerin tanımlanması ve çoklu kalıtım.

C#'ta sınıflar yalnızca tek bir sınıftan türetilebilir. Ancak çoklu miras ihtiyacını karşılamak için Arayüzler (Interface) kullanılır. Arayüzler bir sınıfın yapması gereken işleri bildiren sözleşmelerdir. İçerisinde metotların, özelliklerin veya olayların gövdeleri bulunmaz (yalnızca imzaları bulunur). Bir sınıf birden fazla arayüzü uygulayabilir (implement edebilir).

Arayüz Tanımlama ve Çoklu Arayüz Uygulama
// Arayüz tanımlamaları geleneksel olarak 'I' harfi ile başlar.
public interface IDrawable
{
    void Draw();
}

public interface IResizable
{
    void Resize(int percentage);
}

// Çoklu arayüz uygulaması
public class Document : IDrawable, IResizable
{
    public string Title { get; set; } = string.Empty;

    public void Draw()
    {
        Console.WriteLine($"Döküman çiziliyor: {Title}");
    }

    public void Resize(int percentage)
    {
        Console.WriteLine($"Döküman boyutu %{percentage} oranında değiştirildi.");
    }
}

// --------------------------------------------------

Document doc = new Document { Title = "Rapor.pdf" };
doc.Draw();
doc.Resize(50);