Polymorphism Nedir?
Bir sınıf sonradan yazılmış sınıfları çağıracak şekilde düzenlenmişse bu özelliğe polymorphism denilir. Polymorphism için üç şartın mutlaka sağlanması gerekir.
- Türeme
- Override
- Upcast
Upcast çoğu zaman polimorfik sınıfın constructur’una türemiş sınıfın nesnesi gönderildiğinde gerçekleşir.
Turemis tu=new Turemis();
Taban tau=tu;//upcast
upcast yardımıyla elde edilen tau nesnesi ile override edilen fonk (int i) fonksiyonu çağrıldığında her zaman türemiş sınıftaki fonksiyon çağrılır. Buna göre amaç sadece polymorphism ise taban sınıftaki fonk(int i) fonksiyonunun gövdesini yazmaya gerçekte gerek yoktur. Bunu bize SOYUT sınıflar veya INTERFACE sağlar.
public abstract class TabanS {
public abstract int fonk(int j);
}
Soyut sınıfların veya interface’lerin tek görevi polymorphism değildir.
Soyut bir sınıftan türeme yapan bir sınıf, o sınıfın abstract bildirimi yapılan fonksiyonunu override etmek zorundadır. Bu özellik polymorphism’e yardımcı olur.
NOT: Polymorphism için taban sınıfın abstract olması zorunlu değildir, ama olsa iyi olur!!
Leave a reply