Java Dersleri #67 - Polymorphism (Çok Biçimlilik) İlkesi


Merhaba değerli Kodlama Vakti takipçileri, Bu dersimizde Java'da Polymorphism (Çok Biçimlilik) İlkesi öğreneceğiz.

Çokbiçimlilik, ne yapılacağı ile nasıl yapılacağını birbirinden ayırmaktadır. Çünkü her alt sınıf, ata sınıftaki bir yöntemi geçersiz kıldığında o yöntemi daha özel bir şekilde gerçekleştiriyor demektir. Dolayısıyla işin nasıl yapılacağı alt sınıfla birlikte değişmektedir. Ata sınıf tipinden referans üzerinden yapılan yöntem çağrısı ise ne yapılacağını belirler. calgi.cal(); deyimi, bir çalgının çalmasını istemektedir; ne yapılacağı bellidir. Ancak o çalgının ne olduğu ve nasıl çalacağı ancak çalışma zamanında belirlenmiş olacaktır.

Çokbiçimlilik uygulamaların genişletilebilirliğini sağlar. Derleme zamanında ne yapılacağının belli olması, o işin nasıl yapılacağının ise çalışma zamanında oluşturulan nesne ile birlikte belirlenmesi, geliştirilen sisteme yeni nasıllar eklenmesini kolaylaştırır.

Çokbiçimlilik sayesinde, bir ata sınıfın sunduğu yöntemleri geçersiz kılan alt sınıflar yardımı ile ata sınıfa göre kodlanmış tek bir kod kesimine farklı davranışlar yüklemek olanaklı olmaktadır. Öyleyse, elimizde devingen olarak davranışı değiştirilebilen bir altyapı var demektir. Bu devingen altyapıya yeni türlerin eklenmesi, kalıtım ve geçersiz kılma ilişkileri çerçevesinde oldukça kolaydır.

Çokbiçimliliğin ne işe yaradığını anlatmanın en kolay yolunun, çokbiçimlilik olmasaydı nasıl kod yazılması gerektiğini göstermek olduğunu düşünüyorum. Bu nedenle önce çokbiçimlilik mekanizmasının olmadığını varsayarak örnek bir program yazacağız. Ancak hemen öncesinde soyut sınıflardan bahsetmeliyiz. Çünkü kalıtım ve çokbiçimlilik kavramları soyut sınıflar olmadan düşünülemez.

Derslerimiz hoşunuza gittiyse eğer paylaş butonlarından sevdiklerinizle paylaşabilirsiniz !