Polimorfizm (Çok Biçimlilik) Kullanımı nesneye yönelik programlamanın önemli elemanlarından biridir.Kelime anlamı olarak çok biçimlilik anlamına gelmektedir.Kalıtım konusu ile iç içe geçmiş bir yapıdadır.Kalıtım konusundan hatırlayacağımız üzere alt sınıf üst sınıfın bütün özelliklerini kapsar ve kendiside ekstradan özellikler kapsamaktaydı.Polimorfizmde bu olay kullanılmaktadır.Oluşturduğumuz nesne birden fazla biçimde kullanılabilir.Basit olarak anlatmak gerekirse oluşturduğumuz nesne başka bir sınıfın nesneyi gibi işlemler yapabilir.
Kısa bir örnek üzerinde anlatmaya çalışalım.
Hayvan , aslan ve kartal sınıflarımızı oluşturalım.

[code lang=”java”]
Hayvan h1=new Hayvan();
h1.yakala();
[/code]
Yukarıda görüldüğü üzere ilk olarak hayvan nesnesi oluşturuyoruz.Ardından o hayvan nesnesinin yakala metodunu çağırdığımızda new Hayvan ile oluşturduğumuz için hayvan sınıfı içerisindeki yakala metodunu çağıracaktır.
[code lang=”java”]
Hayvan h2=new Kartal();
h2.yakala();
[/code]
Bu kısımda ise Kartal sınıfı Hayvan sınıfını miras aldığı için üst sınıf alt sınıfın nesnesini oluşturabilir mantığı devreye giriyor. Kartal sınıfı Hayvan sınıfını miras aldığı için onun gibi davranabilir.Polimorfizm burada devreye giriyor.Buraya new Kartal diyerek oluşan nesnenin Kartal sınıfı gibi davranmasını sağlıyoruz.Çıktıdan görüldüğü üzere Kartal sınıfındaki yakala metodunu çağırdı.Aynı şekilde new Aslan dediğimizde Aslan sınıfı üzerindeki yakala metodunu çağıracaktır.
[code lang=”java”]
h2=new Aslan();
h2.yakala();
[/code]
Burada oluşan Aslan sınıfı içerisinde yakala metodu bulunmamaktadır.Fakat bulunmamasına rağmen h2.yakala() ile metodu çağırabiliriz.Bunun sebebi polimorfizm yapıldığında alt sınıf içersinde metodu bulamaz ise üst sınıfa gider.Üst sınıftaki yakala metodunu çağırır.Çıktıdanda görüldüğü üzere Aslan sınıfında yakala metodu olmadığı için Hayvan sınıfındaki yakala metodunu çağırmış oldu.



