abstract sınıf
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
-
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(); } -
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.
-
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