Soyut sınıf hiyerarşisi
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
-
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() { } } -
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
-
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.