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 !

Bu içeriği beğendiyseniz paylaşarak destek olabilirsiniz!


Eğitim İçeriği

Eğitim Java Dersleri
Kategori Programlama Dili
Ders Adeti 125 Ders
Dil Türkçe
Güncelleme 09/2020
  • HTML Dersleri

    HTML Dersleri Sıfırdan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 19 Ders
    Dil Türkçe
    Güncelleme 12/2020
    Derse Başla
  • Java Dersleri

    Java Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 125 Ders
    Dil Türkçe
    Güncelleme 09/2020
    Derse Başla
  • CSS Dersleri

    CSS Dersleri Başlangıçtan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 41 Ders
    Dil Türkçe
    Güncelleme 10/2021
    Derse Başla