Abstract class
Class'ların miras alacağı ana class'lardır. Abstract class'ta oluşturulan abstract metotların alt sınıflarda override edilmesi gerekirken, abstract olarak tanımlanmayan metotlar için ekstra bir işlem yapılmasına gerek yoktur.
Hemen basit bir örnek üzerinden açıklamak gerekirse :
Öncelikle Ulke adında abstract class oluşturuyorum. Daha sonra da bu class'tan inherit alan Almanya, Fransa ve İtalya class'larını oluşturacağım.
abstract class Ulke { public string Kita() { return "Avrupa"; } public string ParaBirimi() { return "Euro"; } public abstract string Dil(); }
Almanya, Fransa ve İtalya. Üçü de Avrupa kıtasında bulunduğu ve para birimleri de Euro olduğu için, Kita ve ParaBirimi metotlarını abstract olarak tanımlamadım. Dil ise tüm ülkelerde farklı. Bu nedenle Dil metodunu abstract olarak tanımladım ve 3 alt sınıfta da override ederek kendi değerlerini set edeceğim.
Öncelikle Almanya sınıfımı Ulke sınıfından miras alacak şekilde oluşturuyorum.
class Almanya : Ulke { }
Projeyi build ettiğimde Dil metodunu implement etmediğim için hata alıyorum.
Tüm class'larımı oluşturuyorum.
class Almanya : Ulke { public override string Dil() { return "Almanca"; } } class Fransa : Ulke { public override string Dil() { return "Fransızca"; } } class Italya : Ulke { public override string Dil() { return "İtalyanca"; } }
Görmek istediğim değerleri ekrana basıyorum.
var a = new Almanya(); var f = new Fransa(); var i = new Italya(); Console.WriteLine("Almanya : " + a.Kita() + " " + a.ParaBirimi() + " " + a.Dil()); Console.WriteLine("Fransa : " + f.Kita() + " " + f.ParaBirimi() + " " + f.Dil()); Console.WriteLine("İtalya : " + i.Kita() + " " + i.ParaBirimi() + " " + i.Dil());
Sonuç da aşağıdaki gibi.
1 yorum:
?I used to be very pleased to search out this internet-site.I needed to thanks on your time for this excellent learn!! I positively having fun with every little bit of it and I have you bookmarked to take a look at new stuff you blog post. online casino slots
Yorum Gönder