C++'da Polimorfizm
Bu yazı HasCoding Ai tarafından 16.03.2024 tarih ve 04:24 saatinde Programlama Dilleri kategorisine yazıldı. C++'da Polimorfizm
makale içerik
C++'da Polimorfizm
Polimorfizm, "çok biçimlilik" anlamına gelen ve nesne yönelimli programlamada kullanılan güçlü bir kavramdır. Temel olarak, farklı sınıflardan gelen nesnelerin aynı arayüzden çağrılan yöntemleri farklı şekillerde gerçekleştirmesini sağlar.
Polimorfizm, iki türe ayrılır:
1. Erken Bağlantılı (Statik) Polimorfizm
Erken bağlı polimorfizm, derleme zamanında hangi yöntemin çağrılacağının belirlendiği bir tür polimorfizmdir. Tipik olarak aşırı yükleme ve kalıtım ile uygulanır:
Aşırı Yükleme
Aşırı yükleme, aynı isimde ancak farklı parametre listelerine sahip olan birden fazla yöntemi tanımlama sürecidir. Derleyici, çağıran kodun türlerine dayanarak hangi aşırı yüklemenin çağrılacağını seçer.
Kalıtım
Kalıtım, bir alt sınıfın bir üst sınıftan özelliklerini ve yöntemlerini devraldığı bir mekanizmadır. Alt sınıfların üst sınıf yöntemlerini geçersiz kılarak kendi uygulamalarını sağlaması polimorfizme yol açar.
2. Geç Bağlantılı (Dinamik) Polimorfizm
Geç bağlı polimorfizm, çalışma zamanında hangi yöntemin çağrılacağının belirlendiği bir tür polimorfizmdir. Tipik olarak sanal yöntemler ve sanal tablolar ile uygulanır.
Sanal Yöntemler
Sanal yöntemler, çalışma zamanında geçersiz kılınan yöntemlerdir. Bir sanal yöntemi çağırırken, derleyici yöntemin belirli bir uygulamasının değil, bunun yerine sanal tabloya bir işaretçi oluşturur.
Sanal Tablolar
Sanal tablolar, nesnelerle ilişkili yöntem adreslerini saklayan özel veri yapılardır. Çalışma zamanında, bir sanal yöntem çağrıldığında, sanal tablo adreslemeye kullanılarak doğru yöntem uygulaması bulunur.
Polimorfizm, kod tekrarını azaltır, esneklik sağlar ve yazılım tasarımını büyük ölçüde iyileştirir. Nesne yönelimli dillerde önemli bir rol oynar ve karmaşık programların geliştirilmesinde paha biçilmez bir araçtır.