Çoklu interface
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
-
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() { } } -
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ü
-
Ç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.