C#
Özet - Miras alma
virtual/override ve base'i birleştirerek bir şekil hiyerarşisi yazarsın.
Miras alma özeti
Beş derste C#'ın miras mekanizmasını öğrendin. İki nokta üst üste (:) ile türetilmiş sınıf temel sınıfın üyelerini devralır. base ile temel yapıcı ve metotlara erişirsin.
virtual ve override ile çok biçimlilik sağlarsın; sealed ile mirası kapatırsın. Her sınıf object'ten miras alır ve ToString gibi metotları override edebilir. Şimdi iki mini görevle tüm bunları birleştireceksin.
Uygulama Vehicle ve Car miras hiyerarşisi
Bir Vehicle temel sınıfı tanımla ve içine public string Brand { get; set; } özelliğini ekle. Ardından class Car : Vehicle tanımla ve içine public int Doors { get; set; } ekle. Main içinde new Car { Brand = "Toyota", Doors = 4 } ile örnek oluştur ve Brand'i yazdır.
Örnek çözümü göster
Vehicle tanımla, Doors ekle. Main içine Car c = new Car { Brand = "Toyota", Doors = 4 }; Console.WriteLine(c.Brand); yaz.
Örnek çözüm:
using System;
class Vehicle
{
public string Brand { get; set; }
}
class Car : Vehicle
{
public int Doors { get; set; }
}
class Program
{
static void Main()
{
Car c = new Car { Brand = "Toyota", Doors = 4 };
Console.WriteLine(c.Brand);
}
}
Uygulama Car'da ToString override ekle
Aşağıdaki Car sınıfında Brand ve Doors zaten var. Car sınıfına public override string ToString() ekle ve gövdede return Brand + " - " + Doors; yaz. Main içinde new Car { Brand = "Toyota", Doors = 4 } ile örnek oluştur ve Console.WriteLine(car) ile yazdır.
Örnek çözümü göster
Car içine public override string ToString() { return Brand + " - " + Doors; } ekle. Main içine Car c = new Car { Brand = "Toyota", Doors = 4 }; Console.WriteLine(c); yaz.
Örnek çözüm:
using System;
class Vehicle
{
public string Brand { get; set; }
}
class Car : Vehicle
{
public int Doors { get; set; }
public override string ToString()
{
return Brand + " - " + Doors;
}
}
class Program
{
static void Main()
{
Car c = new Car { Brand = "Toyota", Doors = 4 };
Console.WriteLine(c);
}
}
Miras alma tamam
Miras alma artık araç çantanda. İki nokta ile türetilmiş sınıf, base ile temel sınıf, virtual/override ile çok biçimlilik, sealed ile kapanış sağlarsın.
Sonraki grupta küçük bir yardımcı kütüphane projesi yapacak, buraya kadar öğrendiğin sınıf, yapıcı ve miras bilgilerini gerçek bir mini uygulamada birleştireceksin.
Kendini test et
-
virtual bir metot ne yapar?
- Sınıfı mühürler
- Türetilmiş sınıfta override edilmeye izin verir
- Statik yapıcı tanımlar
- Yapıcı zincirler
Cevabı göster
Türetilmiş sınıfta override edilmeye izin verir — Doğru. virtual, türetilmiş sınıfta override imkanı verir.
-
override bildirimini tamamla
public ____ string ToString() { return Title; }
Cevabı göster
public override string ToString() { return Title; }
Sıradaki ders: Sınıf tasarımı