C#
Özet - Arayüzler
Birden çok interface'i birleştirerek bir ödeme sistemi yazarsın.
Özet - Arayüzler
Bu grupta arayüzleri öğrendin: interface bir sözleşmedir, sınıf : ile uygular, birden çok interface virgülle eklenir, default metotlar gövde içerir ve interface vs abstract farkını gördün.
interface'ler farklı sınıfları ortak sözleşmeyle birleştirir; çok biçimliliğin temelidir. Bir sonraki grupta abstract sınıfları derinlemesine inceleyeceğiz: abstract metotlar, virtual vs abstract farkı ve soyut sınıf hiyerarşileri.
Uygulama Yazdırma arayüzü (özet)
IPrintable arayüzünü tanımla: void Print(); metot imzasını içersin. Document ve Main zaten hazır; sen sadece arayüzü ekleyeceksin.
Örnek çözümü göster
`interface IPrintable { void Print(); }` ekle.
Örnek çözüm:
using System;
interface IPrintable
{
void Print();
}
class Document : IPrintable
{
public void Print()
{
Console.WriteLine("Yazdırıldı");
}
}
class Program
{
static void Main()
{
IPrintable d = new Document();
d.Print();
}
}
Uygulama Günlükleyici (özet)
FileLogger sınıfını tanımla: ILogger uygulasın. public void Log(string message) metodu Console.WriteLine("Dosya: " + message); yapsın. Main'de ILogger logger = new FileLogger(); üretip logger.Log("Kayıt") çağır.
Örnek çözümü göster
ILogger { public void Log(string message) { Console.WriteLine("Dosya: " + message); } }` şeklinde yaz. Main içine `ILogger logger = new FileLogger(); logger.Log("Kayıt");` yaz.
Örnek çözüm:
using System;
interface ILogger
{
void Log(string message);
}
class FileLogger : ILogger
{
public void Log(string message)
{
Console.WriteLine("Dosya: " + message);
}
}
class Program
{
static void Main()
{
ILogger logger = new FileLogger();
logger.Log("Kayıt");
}
}
Sonraki adım
Arayüzler sözleşme ve çok biçimlilik için güçlü bir araçtır. default metotlar ile geriye dönük uyumluluğu koruyabilir, çoklu interface ile sınıflara farklı roller verebilirsin. Bir sonraki grupta abstract sınıfları inceleyeceğiz: ortak davranışı paylaşmak, abstract metotlar ve sealed kısıtlamaları.
Unutma: interface «yapabilir» der; abstract sınıf «bir türüdür» der. Doğru aracı seçmek tasarımı temiz tutar.
Kendini test et
-
Boşluğu doldur: interface metot çağrısı
ILogger logger = new FileLogger();
logger.____("Kayıt");
Cevabı göster
ILogger logger = new FileLogger();
logger.Log("Kayıt");
-
Arayüzlerle ilgili hangisi doğrudur?
- interface new ile örneklenir.
- interface alan içerebilir.
- interface uygulayan sınıf tüm metotları uygulamalıdır.
- interface en fazla bir sınıf tarafından uygulanabilir.
Cevabı göster
interface uygulayan sınıf tüm metotları uygulamalıdır. — Doğru. Uygulayan sınıf, interface'in tüm metotlarını uygulamak zorundadır.
Sıradaki ders: abstract sınıf