3.8 Polimorfizm (Polymorphism)
Polimorfizm, nesne yönelimli programlamanın temel özelliklerinden biridir ve bir nesnenin farklı formlarda davranabilmesi anlamına gelir. C++ dilinde polimorfizm, genellikle iki ana türde bulunur: statik (compile-time) polimorfizm ve dinamik (run-time) polimorfizm.
1. Statik Polimorfizm
Statik polimorfizm, derleme zamanında belirlenir. Genellikle fonksiyon aşırı yükleme (function overloading) ve operator aşırı yükleme (operator overloading) ile gerçekleştirilir. Bu türde, aynı isimde birden fazla fonksiyon tanımlanabilir, ancak parametre sayısı veya türleri farklı olmalıdır.
Örnek: Fonksiyon Aşırı Yükleme
2. Dinamik Polimorfizm
Dinamik polimorfizm, çalışma zamanında belirlenir. Genellikle virtual anahtar kelimesi kullanılarak gerçekleştirilir. Bir üst sınıfta tanımlanan bir metot, alt sınıfta geçersiz kılındığında (override) dinamik polimorfizm sağlanır. Bu sayede, bir işaretçi veya referans ile üst sınıf türünden bir nesne kullanıldığında, alt sınıfın geçersiz kılınmış metodu çağrılır.
Örnek: Dinamik Polimorfizm
Polimorfizmin Avantajları
Kodun Yeniden Kullanımı: Polimorfizm, benzer kodları tekrar kullanarak kodun daha modüler ve bakımı kolay olmasını sağlar.
Esneklik: Dinamik polimorfizm, çalışma zamanında farklı nesne türlerini işleme yeteneği sunarak kodun esnekliğini artırır.
Bakım Kolaylığı: Geçersiz kılma (override) ile üst sınıfın metotları altında yeni davranışlar tanımlamak, yazılım bakımını kolaylaştırır.
Sonuç
Polimorfizm, C++ dilinde nesne yönelimli programlamanın güçlü özelliklerinden biridir. Statik ve dinamik polimorfizm, yazılımcılara daha esnek ve bakımı kolay kod yazma imkanı sunar.
Last updated