türkçeye çok şekillilik olarak çevrilebilecek yazılım terimidir.
nesne yönelimli programlama dillerinde, aynı isme sahip bir unsurun farklı içerik ve işlevlerle kullanılabilmesidir.
aynı isimli virtual bir method farklı classlar için değişen işlevlerle kullanılırsa (overriding) bu dynamic polymorphisme; aynı method farklı parametre kombinasyonları ile kullanılırsa (overloading) static polymorphisme örnektir.
genelde structural programlamayla bu işler başlanıldığı için pekte kullanılmayan bir uzuvdur. Amatör projelerde yeni bir class oluşturup inherit edeceğiniz class a ait methodları, değişkenleri aynen taşırsınız olur biter ama etkili kullanabilenleri gördükçe insanı mutlu eder.