polymorhism nedir?
polymorphism'in türkçesi çokbiçimliliktir,
çok biçimlilik sözcüğünü duyduğımuzda aklımıza tek bir şeyin farklı kullanımlara farklı yanıtlar vermesi gelebilir.bunu sınıf kullanımına indirgediğimizde ise birbiriyle kalıtımla ilişkisi olan farklı sınıfların nesnelerinin aynı üye fonksiyon çağrısına farklı yanıt vermesi şeklinde açıklayabiliriz.
polymorphism nasıl kullanılır?
bunun için bir base classımız olmalı(temel sınıf),ve ondan kalıtımla oluşan derived classlar(türetilmiş sınıflar).
base classda oluşturulan bir fonksiyon diğer sınıflarından hepsinde de kullanılacak ama bu fonksiyonların herbirinin içeriği farklı olacak.
base classda tanımladığımız ve bütün classlr için ortak kullanmak istediğimiz fonksiyonu base classda tanımlarken bunu "virtual" olarak tanımlayıp,kullanmalıyız.diğer classlara tanımlama yaparken ise normal tanımlama yapılmalıdır.
base classdaki tanımlama:
public virtual string speak() const
kalıtılmış sınıftaki tanımlama:
public string speak() const
mainde bunu kullanacakken de alt sınıflardan nesne oluşturup bunu base classın pointerına ya adresine eklemek gerekir.
dog kucik //dog derived class,pet base class
pet *p1=&kucik
ya da
pet &p2=kucik
şeklinde kullanılır
polymorphismin ne fayda sağlar?
aynı fonksiyonu kullanacak yeni bir alt class eklendiğinde de fonksiyonun içeriğini tekrardan yazmak zorunda kalmacağız.
bu söylediğimiz durum tabiki büyük projelerde avantaj sağlayacaktır,temel bir içeriğie sahip fonksiyon var ve buna herbir oluşturulan classda yeni özellikler ekleniyor.
burda açıkladığım örnek kod var tıklayıp inceleyebilirsiniz.
DERYA GÜNDÜZ
Basit Oyunlar / Uygulamalar
7 yıl önce
3 yorum:
teşekkürler
bende acemi bir c # öğrencisi olarak ödevim olan bu makale için teşekkür ederim.malum msdn ingilizce.böle türkçe makalelere yoğunlukla ihtiyac var :)
Rica ederim.Faydalı olmuşsa ne mutlu.Ben de fırsat buldukça çalıştıklarımı yazıyorum.
Yorum Gönder