CodeBlanks Logo Icon CodeBlanks

abstract sınıf

C# kursu · Orta seviye · Ders 53/116

abstract sınıf tanımlamayı ve türetmeyi öğrenirsin.

abstract sınıf

Bir abstract sınıf (soyut sınıf), doğrudan örneklenemeyen ve miras alınmak için tasarlanan sınıftır. Tanımı: abstract class Animal { ... }.

Abstract sınıf hem gövdeli metotlar hem de abstract metot (gövdesiz imza) içerebilir. new Animal() çağrısı derleme hatası verir; ancak türetilen sınıf örneği üzerinden kullanılabilir: Animal a = new Dog();. Bu, ortak davranışı paylaşmak için kullanışlıdır.

Örneklenemez ama miras alınır

Abstract sınıf new ile üretilemez: new Animal() derleme hatasıdır. Bunun yerine bir alt sınıf tanımlayıp onun örneğini üretirsin: class Dog : Animal { ... }.

Alt sınıf, abstract sınıfın tüm abstract metotlarını uygulamak zorundadır. Aksi halde derleme hatası alınır. Bu sayede abstract sınıf, alt sınıflar için bir şablon görevi görür. Ortak alanlar ve yardımcı metotlar abstract sınıfta toplanır, detaylar alt sınıfa bırakılır.

Uygulama Hayvan sınıfı

Animal abstract sınıfını tanımla: public string Name; alanı ve public abstract void MakeSound(); metodu içersin. Dog ve Main zaten hazır; sen sadece abstract sınıfı ekleyeceksin.

Örnek çözümü göster
Animal sınıfını `abstract class Animal { public string Name; public abstract void MakeSound(); }` şeklinde tanımla. Main içine `Animal a = new Dog(); a.Name = "Karabaş"; Console.WriteLine(a.Name); a.MakeSound();` yaz.
Örnek çözüm:
using System;

abstract class Animal
{
    public string Name;

    public abstract void MakeSound();
}

class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Hav hav");
    }
}

class Program
{
    static void Main()
    {
        Animal a = new Dog();
        a.Name = "Karabaş";
        Console.WriteLine(a.Name);
        a.MakeSound();
    }
}

Kendini test et

  1. Boşluğu doldur: abstract sınıf

    abstract ____
    {
        public string Name;
        public abstract void MakeSound();
    }
    Cevabı göster
    abstract class Animal
    {
        public string Name;
        public abstract void MakeSound();
    }
  2. abstract sınıf ile ilgili hangisi doğrudur?

    • abstract sınıf new ile örneklenir.
    • abstract sınıf yalnızca metot içerebilir.
    • abstract sınıf miras alınmak için tasarlanır.
    • abstract sınıf sealed olabilir.
    Cevabı göster

    abstract sınıf miras alınmak için tasarlanır. — Doğru. Abstract sınıf miras alınmak üzere tasarlanır; doğrudan örneklenemez.

  3. Eşleştir: abstract sınıf kavramları

    abstract class
    miras için tasarlanır
    new Animal()
    derleme hatası
    abstract metot
    gövdesiz imza
    override
    türetilen sınıfta gövde

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