Object Oriented Programming Polymorphism (Çok Biçimlilik) Ders 4

Merhaba,

Bu yazımızda da OOP nin temelleri üzerine tam gaz yol alacağız. Haydi başlayalım…

Bu seferki konumuz Polymorphism yani çok biçimlilik. Peki nedir bu PolyMorphism.

Daha önceki makalelerimizden hatırlarsınız bir class tan başka bir classa kalıtım yolu ile özellikleri aktarmıştık. Bu aktarım esnasında aslında sadece özellikler aktarılmaz o classın altındaki method larda aktarılmaktadır. Fakat bu aktarılan method türetilmiş olan alt classın içerisinde bizim istediğimiz sonuçları vermeyebilir. Yani Methodun döndürdüğü sonuçlar bizim o class içerisinde işimize yaramayabilir. Bizim bu durumda o methodu kendi işimize yarayacak şekilde tekrar düzenlememiz yani biçimini şeklini değiştirmemiz gerekecektir.  İşte bu noktada devreye Polymorphism girmektedir. Uygulunanışı ve kullanımı çok basit olan yapının örneğine geçebiliriz artık.

Sitedeki daire örneğimizi hatırlıyorsunuzdur. Bir önceki dersimizde bu örnek üzerinden ilerlemiştik. Dilerseniz hiç bozmadan aynı örnek üzerinden devam edelim.

Ana Classımız SitedeDaire idi hemen buraya da ekleyelim.

Bir önceki dersimize ek olarak BilgiDon diye bir method ekledim. Ve bu method bize dairenin boyutunu dönmektedir. (Dilerseniz başka verilerde döndürebilirsiniz. Ben Örnek olması açısından pek dataya girmiyorum)

1

Gördüğünüz üzere bilgi dön adındaki methodumuz da kalıtım sayesinde bu classımıza aktarıldı.

Ancak bizim istediğimiz özellikleri taşımıyor. (En azından bu senaryoda taşımadığını iddia ediyoruz).

Bu durumda ya sıfırdan bir method oluşturacağız. Yada mevcut methodumuzun üzerine bir geliştirme yapacağız. Ben ikinci ve doğru olan şıkkı seçiyorum J

Peki bu işlemi nasıl yapacağız. Hemen ev classımızın içerisine gelelim ve “override” yazalım. Bu işlemi yaptıktan sonra düzenlemesini yapabileceğimiz methodlar karşımıza gelmektedir.

2

Bakıyoruz bizim bilgidon methodu bu listede yok. Nedeni ise biz bu methodu oluştururken tekrar düzenlenebilir halde oluşturmadık. Bu işlem için virtual keywordünü kullanmaktayız. Kullanım şekli şöyledir.

Gördüğünüz üzere public ile void keywordlerinin arasına virtual keywordünü ekledim. Bu sayede ileride bir yerde bu methodu override edebilceğimi belirttim. Şimdi ev classımız içerisinde tekrar override yazalım.

3

Bakın artık BilgiDon() methodum karşıma tekrar yazılabilir halde geldi. Hadi başlayalım düzenlemeye.

Gördüğünüz üzere methodu ev için tekrar düzenledim. Artık ev classından bu methodu çağırdığımızda karşımıza yukarıdaki yazı gelecektir.

Polymorphism yadı verilen yapı işte bu kadar basittir. Bir methodu sınıfa göre tekrar düzenlemek birden fazla biçim katmak anlamına gelir.

Sormak istediğiniz konularda dilediğiniz zaman benimle iletişime geçebilirsiniz.

Bir sonraki yazımda hep gördüğümüz public, private gibi keywordlerin ne anlama geldiğini ve nasıl kullanıldıkları hakkında bilgi vereceğim.

İyi Günler Dilerim,