CodeBlanks Logo Icon CodeBlanks

Soyut sınıf hiyerarşisi

C# kursu · Orta seviye · Ders 56/116

Soyut sınıflarla hiyerarşi kurmayı öğrenirsin.

Soyut sınıf hiyerarşisi

Abstract sınıflar, çok katmanlı hiyerarşiler kurmak için uygundur. Üst abstract sınıf ortak şablonu, alt sınıflar somut davranışları sağlar. Örnek: Vehicle abstract → Car, Motorcycle somut.

Bu desende template method adı verilen bir yöntem kullanılır: abstract sınıfta gövdeli bir metot, alt sınıfın uyguladığı abstract metotları çağırır. Vehicle.Describe() gövdeli metodu Start() abstract metodunu çağırır; her alt sınıf kendi Start()'ını yazar.

Template method deseni

Template method deseninde abstract sınıf, alt sınıfın davranışını yönlendirir. Describe() gövdeli metodu ne yapılacağını sırayla söyler; alt sınıfın uyguladığı Start() ise nasıl yapılacağını belirler.

Bu, kod tekrarını azaltır ve tutarlılık sağlar. Tüm araçlar Describe() akışını paylaşır; her birinin Start() davranışı farklıdır. Yeni bir araç eklemek için yalnızca yeni bir alt sınıf yazmak yeter.

Uygulama Araç hiyerarşisi

Car sınıfını tanımla: Vehicle miras alır ve public override void Start() gövdesini yazar: Console.WriteLine("Araba kontak ile çalıştı");. Main'de Vehicle v = new Car(); üretip v.Describe(); çağır.

Örnek çözümü göster
Vehicle { public override void Start() { Console.WriteLine("Araba kontak ile çalıştı"); } }` şeklinde yaz. Main içine `Vehicle v = new Car(); v.Describe();` yaz.
Örnek çözüm:
using System;

abstract class Vehicle
{
    public abstract void Start();

    public void Describe()
    {
        Console.WriteLine("Araç çalışıyor");
        Start();
    }
}

class Car : Vehicle
{
    public override void Start()
    {
        Console.WriteLine("Araba kontak ile çalıştı");
    }
}

class Program
{
    static void Main()
    {
        Vehicle v = new Car();
        v.Describe();
    }
}

Kendini test et

  1. Boşluğu doldur: türetilen sınıf

    class Car ____
    {
        public override void Start() { }
    }
    Cevabı göster
    class Car : Vehicle
    {
        public override void Start() { }
    }
  2. Eşleştir: hiyerarşi kavramları

    base abstract
    ortak şablon
    somut alt sınıf
    metotları uygular
    template method
    gövdeli temel metot
    soyutlama
    detayları gizler
  3. Soyut sınıf hiyerarşisi ile ilgili hangisi doğrudur?

    • Türetilen sınıf abstract metotları uygulamak zorunda değildir.
    • Soyut sınıf, türetilen sınıflar için ortak şablon sağlar.
    • Soyut sınıf yalnızca bir metot içerebilir.
    • Soyut sınıf new ile örneklenir.
    Cevabı göster

    Soyut sınıf, türetilen sınıflar için ortak şablon sağlar. — Doğru. Soyut sınıf türetilen sınıflara ortak şablon sağlar.

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