CodeBlanks Logo Icon CodeBlanks

Çoklu interface

C# kursu · Orta seviye · Ders 49/116

Bir sınıfın birden çok interface uygulamasını öğrenirsin.

Çoklu interface

Bir sınıf birden fazla interface uygulayabilir. Aralarına virgül konur: class Button : IDrawable, IClickable. Sınıf, her iki interface'in tüm metotlarını uygulamak zorundadır.

Çoklu interface, bir sınıfın farklı roller üstlenmesini sağlar. Button hem çizilebilir hem tıklanabilir. Değişken tipi olarak istediğin interface kullanılabilir: IDrawable d = new Button(); veya IClickable c = new Button();. C# sınıfta çoklu mirasa izin vermez ama çoklu interface'e izin verir.

Ne zaman çoklu interface?

Bir sınıfın birden çok rolü varsa, her rol için ayrı interface tanımlamak uygundur. Örnek: bir Button hem çizilir hem tıklanır; iki ayrı interface rolleri net tutar.

Tek bir büyük interface yerine küçük, odaklı interface'ler tercih edilir. Buna Interface Segregation Principle denir. Bir sınıf yalnızca ihtiyaç duyduğu interface'leri uygular; kullanmadığı metotlarla yüklenmez.

Uygulama Düğme sınıfı

Button sınıfını tanımla: IDrawable ve IClickable uygulansın. Draw metodu Console.WriteLine("Çizildi");, Click metodu Console.WriteLine("Tıklandı"); yapsın. Main'de bir Button üretip Draw ve Click çağır.

Örnek çözümü göster
IDrawable, IClickable { public void Draw() { Console.WriteLine("Çizildi"); } public void Click() { Console.WriteLine("Tıklandı"); } }` şeklinde yaz. Main içine `Button b = new Button(); b.Draw(); b.Click();` yaz.
Örnek çözüm:
using System;

interface IDrawable
{
    void Draw();
}

interface IClickable
{
    void Click();
}

class Button : IDrawable, IClickable
{
    public void Draw()
    {
        Console.WriteLine("Çizildi");
    }

    public void Click()
    {
        Console.WriteLine("Tıklandı");
    }
}

class Program
{
    static void Main()
    {
        Button b = new Button();
        b.Draw();
        b.Click();
    }
}

Kendini test et

  1. Boşluğu doldur: çoklu interface

    class Button ____
    {
        public void Draw() { }
        public void Click() { }
    }
    Cevabı göster
    class Button : IDrawable, IClickable
    {
        public void Draw() { }
        public void Click() { }
    }
  2. Eşleştir: çoklu interface

    virgül
    interface ayracı
    iki interface
    iki rol
    IDrawable d = new Button()
    çizim rolü
    IClickable c = new Button()
    tıklama rolü
  3. Çoklu interface ile ilgili hangisi doğrudur?

    • Bir sınıf virgülle ayrılmış birden çok interface uygulayabilir.
    • Bir sınıf en fazla iki interface uygulayabilir.
    • Çoklu interface uygulandığında `:` bir kez yazılır.
    • Çoklu interface yalnızca struct'lar için geçerlidir.
    Cevabı göster

    Bir sınıf virgülle ayrılmış birden çok interface uygulayabilir. — Doğru. C#'ta sınıflar virgülle birden çok interface uygulayabilir.

Orta seviye bölümündeki tüm dersler