CodeBlanks Logo Icon CodeBlanks

Özet - Soyut sınıflar

C# kursu · Orta seviye · Ders 58/116

abstract metot ve override'ı birleştirerek bir şekil hiyerarşisi yazarsın.

Özet - Soyut sınıflar

Bu grupta soyut sınıfları öğrendin: abstract sınıf örneklenemez, abstract metot gövdesizdir ve override zorunludur, virtual gövdeli ve opsiyonel, hiyerarşi ortak şablon sağlar ve sealed mirası veya override'ı engeller.

Soyut sınıflar, ortak davranışı paylaşmak ve alt sınıflara sözleşme dayatmak için kullanılır. Bir sonraki grupta polimorfizm'i derinlemesine inceleyeceğiz: çok biçimli davranış, metot gizleme ve desen eşleme.

Uygulama Yazıcı sınıfı (özet)

Writer abstract sınıfına public abstract void Write(string message); metodunu ekle. ConsoleWriter ve Main zaten hazır; sen sadece abstract metodu ekleyeceksin.

Örnek çözümü göster
Writer içine `public abstract void Write(string message);` ekle. Main içine `Writer w = new ConsoleWriter(); w.Write("Merhaba");` yaz.
Örnek çözüm:
using System;

abstract class Writer
{
    public abstract void Write(string message);
}

class ConsoleWriter : Writer
{
    public override void Write(string message)
    {
        Console.WriteLine(message);
    }
}

class Program
{
    static void Main()
    {
        Writer w = new ConsoleWriter();
        w.Write("Merhaba");
    }
}

Uygulama Kedi sınıfı (özet)

Cat sınıfını tanımla: Animal miras alır ve Sound'u override eder; gövde return "Miyav"; yapsın. Main'de Animal a = new Cat(); üretip a.Greet(); çağır.

Örnek çözümü göster
Animal { public override string Sound() { return "Miyav"; } }` şeklinde yaz. Main içine `Animal a = new Cat(); a.Greet();` yaz.
Örnek çözüm:
using System;

abstract class Animal
{
    public abstract string Sound();

    public void Greet()
    {
        Console.WriteLine("Ses: " + Sound());
    }
}

class Cat : Animal
{
    public override string Sound()
    {
        return "Miyav";
    }
}

class Program
{
    static void Main()
    {
        Animal a = new Cat();
        a.Greet();
    }
}

Sonraki adım

Soyut sınıflar ortak şablon ve sözleşme sağlar; abstract metot alt sınıfa davranışı dayatır, virtual esneklik verir, sealed sınır koyar. Bir sonraki grupta polimorfizm'i inceleyeceğiz: soyut sınıf örneği üzerinden farklı alt sınıfların davranışını çağırma, new ile metot gizleme ve is/as ile tür denetimi.

Unutma: abstract sınıf «bir türüdür», interface «yapabilir» der. İkisi birlikte güçlü tasarım sağlar.

Kendini test et

  1. Soyut sınıflarla ilgili hangisi doğrudur?

    • abstract sınıf gövdeli ve gövdesiz metotlar içerebilir.
    • abstract sınıf new ile örneklenir.
    • abstract metotlar gövde içerebilir.
    • sealed abstract sınıf tanımlanabilir.
    Cevabı göster

    abstract sınıf gövdeli ve gövdesiz metotlar içerebilir. — Doğru. Abstract sınıf hem gövdeli hem gövdesiz metotlar içerebilir.

  2. Boşluğu doldur: abstract metot imzası

    abstract class Writer
    {
        public ____ void Write(string message);
    }
    Cevabı göster
    abstract class Writer
    {
        public abstract void Write(string message);
    }

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