Abstract anahtar kelimesi sınıflara, metotlara ve özelliklere uygulanır. Abstract sınıflara soyut yada özet sınıflar diyebiliriz.
Abstract Class: abstract olarak tanımlanan bir sınıf temel sınıftır. Bu sınıftan new anahtar kelimesi kullanılarak bir nesne oluşturulamaz.
Abstract Metot: Sadece soyut sınıflar içerisinde kullanılabilirler. Mirasçı sınıflarda override edilmek zorundadırlar.Abstarct metotlar sadece tanımlanır. Herhangi bir işlemi yerine getirmezler. Yapacakları işlemler override edildikleri sınıfta kodlanmalıdır.
Aşağıdaki örnekte mobilya isimli bir abstract sınıf ve bu sınıfta ozellikyaz() isimli bir metot bulunmakta. Bu sınıftan kanepe ve masa isimli mirasçı sınıf oluşturarak override edelim.
Class yapımızı aşağıdaki şekilde oluşturuyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | abstract class mobilya { public string renk; abstract public void ozellikyaz(); } class kanepe : mobilya { public string kumas; public override void ozellikyaz() { Console.WriteLine("Kanepenin Özellikleri"); Console.WriteLine("Renk: {0}",renk); Console.WriteLine("Kumaş: {0}", kumas); } } class masa : mobilya { public string malzeme; public override void ozellikyaz() { Console.WriteLine("Masanın Özellikleri"); Console.WriteLine("Renk: {0}", renk); Console.WriteLine("Malzeme: {0}", malzeme); } } |
Anaprogramımız ise aşağıdaki gibi olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Program { static void Main(string[] args) { kanepe knp1 = new kanepe(); masa calisma_masasi = new masa(); knp1.renk = "Siyah"; knp1.kumas = "Deri"; calisma_masasi.renk = "Sarı"; calisma_masasi.malzeme = "Ahşap"; knp1.ozellikyaz(); calisma_masasi.ozellikyaz(); Console.ReadKey(); } } |
Uygulamamızı çalıştırdığımızda ekran görüntüsü;