Abstract Nedir?
Abstract Class, ortak özellikli Class’lara Base(taban) Class olma görevini üstlenir. Örneğin siz projenizde birden fazla Class oluşturup kullanmak istiyorsunuz. Ve oluşturacağınız Class’lar pek çok yönden ortak özellikleri içerisinde barındırıyor. İşte bu durumda Abstract Class kullanmanız kodunuzun daha sağlıklı olmasını sağlayacaktır.
Abstract Class’lar, diğer sınıflara base Class olmak için yazılır. Bu nedenle Abstract Class’dan nesne türetilemez.
İkinci iş olarak Abstract Method‘ların ne olduğunu açıklığa kavuşturalım. Abstract method, sadece Abstract Class’ların içerisinde tanımlanır ve Abstract Class’ı kalıtan sınıf tarafından override edilmek zorundadır. Oluşturduğumuz Abstract Class içerisine, Abstract Method yazılırken gövdesi yazılmaz ve daha sonra Abstract Class’ımızı kalıtacağımız sınıfta Abstract Method’u override ederiz.
Abstract Method, sadece Abstract Class’ların içerisinde tanımlanabilen, tanımlanırken !gövde bulundurmayan!, daha sonra içerisinde bulunduğu Abstract Class kalıtılırken override edilen Method‘lardır.
Abstract Method’lar, Private olarak tanımlanamaz.
Abstract sınıf virtualdir.
Static tanımlanamazlar. ( Tanımlanmaya çalışılırsa compiler “an abstract class cannot be sealed or static” hatası verir)
Constructors (yapıcı metodlar) ve destructors (yıkıcı metodlar) bulundurabilirler.
Temel olarak Abstract Class ve Abstract Method’ları tanımlamaya çalıştım. Sıra geldi Abstract’ları bir örnekle pekiştirmeye.
Öncelikle senaryoyu anlatayım. Bizim Ucak adında bir tane Abstract(taban) sınıfımız olacak. Ve daha sonra bu Abstract Class’dan BuyukUcak ve KucukUcak sınıflarını kalıtacağız. Ve Ucak Abstract Class’ımızın içerisine basit bir “UcakFiyatı” isimli method yazıp, bu method’u kalıttığımız Class’larda override ederek, UcakFiyatı isimli methodumuza gövdeyi implement edeceğiz.
“Ucak” Abstract Class’ımızı yazalım;
Gördüğünüz gibi Abstract Class’ımızda, sonradan oluşturulabilecek Ucak Class’larının ortak özellikleri ve bir tane override ederek gövdesini oluşturacağımız bir Abstract Method var.
Ucak Abstract Class’ından kalıttığımız BuyukUcak ve KucukUcak sınıflarında, UcakFiyati Abstract Method’unu override ederek gövdesini dolduruyoruz. İçerisine ise Büyük Uçağın ve Küçük Uçağın temsili fiyatlarını Console’a yazdırıyoruz.
Son olarak ise Ucak Abstract sınıfından kalıtılan KucukUcak sınıfından oluşturduğumuz “k” nesnesini kullanarak UcakFiyati methodunu çalıştırıyoruz. Konsoldan gelen çıktı aşağıdaki gibi olacaktır.
-----------------------------------------------------ÖRNEK---------------------------------------------------------
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.
Program.cs:
ÇIKTI
Last updated
Was this helpful?