Paylaşım Yap
Tüm Reklamları Kapat
Sorulara Dön
0

Nesne Tabanlı Programlamada Polymorphism nedir ?

Farklı yerlerden araştırmama rağmen özet olarak bir objenin başka bir obje gibi davranması denmiş ama neden ihtiyaç duyulmuş yani neden gidip başka bir kalıtımlı classın metodunu objemiz'de kullanıyoruz neden metodu objemizi o main sınıfta tanımlamıyoruz bide programlamaya girmeden benzetimle anlatabilir misiniz ?
238 görüntülenme
  • Soruyu Takip Et
  • Raporla
  • Mantık Hatası Bildir
Tüm Reklamları Kapat
1 Cevap
Cevap
Berkay Özkan
Yazılım Mühendisi

Objenin başka bir obje gibi davranmasından ziyade bir objenin bir den fazla formunun olması demek daha doğru olur. SOLID prensiplerinde open-closed ile güzel uyuşuyor. Genel olarak verilen bir örnek üzerinden gidecek olursak bir Shape (Şekil) classımız olsun, bu shape birden fazla formda olabilir: kare, daire, üçgen vs. Shape classında alan hesabı yapmak istersek her bir şekil için type belirtip eğer o type ise o şekil için alan hesabı yaptırabiliriz. if type=="square" a*a else if type=="üçgen a*h/2. Fakat bu tarz bir yola girmek hem gereksiz bir if else (ya da switch) bloğu yaratıyor. Ve ne zaman yeni bir type eklersek şekil classına, onun için classı "modify" etmemiz gerekiyor. Bunun yerine her bir şekil için ayrı class yaparsak shape classından inherit eden. Her class da alan hesaplayan methodu o class a özel yazabiliriz. Yeni bir şekil eklencek olursa, onun için ayrı bir class oluşturup kolay bir şekilde "extend" etmiş oluruz.

Diğer bir güzel yanı da: elinde bir shape objesi varsa ve onun alanına ihtiyacın varsa, shape.getArea() demen yeterli. Onun hangi typeda olduğu seni çok da ilgilendirmiyor oluşu.

Tüm Reklamları Kapat

class Shape {
float getArea();
}
class Square extends Shape{
float getArea(){
// hesaplama
}
}
class Circle extends Shape{
float getArea(){
// hesaplama
}
}
main:
Shape square = Square()
Shape circle = Circle()
square.getArea()
circle.getArea()

Kaynaklar

  1. Refactoring Guru. Replace Conditional With Polymorphism. (17 Ekim 2020). Alındığı Tarih: 17 Ekim 2020. Alındığı Yer: | Arşiv Bağlantısı
2
  • Raporla
  • Mantık Hatası Bildir
Daha Fazla Cevap Göster
Cevap Ver
Evrim Ağacı Soru & Cevap Platformu, Türkiye'deki bilimseverler tarafından kolektif ve öz denetime dayalı bir şekilde sürdürülen, özgür bir ortamdır. Evrim Ağacı tarafından yayınlanan makalelerin aksine, bu platforma girilen soru ve cevapların içeriği veya gerçek/doğru olup olmadıkları Evrim Ağacı yönetimi tarafından denetlenmemektedir. Evrim Ağacı, bu platformda yayınlanan cevapları herhangi bir şekilde desteklememekte veya doğruluğunu garanti etmemektedir. Doğru olmadığını düşündüğünüz cevapları, size sunulan denetim araçlarıyla işaretleyebilir, daha doğru olan cevapları kaynaklarıyla girebilir ve oylama araçlarıyla platformun daha güvenilir bir ortama evrimleşmesine katkı sağlayabilirsiniz.
Sorulara Dön
Evrim Ağacı'na Destek Ol
Evrim Ağacı'nın %100 okur destekli bir bilim platformu olduğunu biliyor muydunuz? Evrim Ağacı'nın maddi destekçileri arasına katılarak Türkiye'de bilimin yayılmasına güç katmak için hemen buraya tıklayın.
Popüler Yazılar
30 gün
90 gün
1 yıl
EA Akademi
Evrim Ağacı Akademi (ya da kısaca EA Akademi), 2010 yılından beri ürettiğimiz makalelerden oluşan ve kendi kendinizi bilimin çeşitli dallarında eğitebileceğiniz bir çevirim içi eğitim girişimi! Evrim Ağacı Akademi'yi buraya tıklayarak görebilirsiniz. Daha fazla bilgi için buraya tıklayın.
Etkinlik & İlan
Bilim ile ilgili bir etkinlik mi düzenliyorsunuz? Yoksa bilim insanlarını veya bilimseverleri ilgilendiren bir iş, staj, çalıştay, makale çağrısı vb. bir duyurunuz mu var? Etkinlik & İlan Platformumuzda paylaşın, milyonlarca bilimsevere ulaşsın.
Youtube
Umut: Her Şey Çok Güzel Olacak mı?
Umut: Her Şey Çok Güzel Olacak mı?
Ay Kraterindeki Dev Teleskop Ne İşe Yarayacak?
Ay Kraterindeki Dev Teleskop Ne İşe Yarayacak?
Körler ve Sağırlar Rüya Görür mü?
Körler ve Sağırlar Rüya Görür mü?
Acı Yemek Basur Yapar Mı?
Acı Yemek Basur Yapar Mı?
Tatil Ortası Depresyonu: Tatil İnsanları Neden Üzüyor?
Tatil Ortası Depresyonu: Tatil İnsanları Neden Üzüyor?
Podcast
Evrim Ağacı'nın birçok içeriğinin profesyonel ses sanatçıları tarafından seslendirildiğini biliyor muydunuz? Bunların hepsini Podcast Platformumuzda dinleyebilirsiniz. Ayrıca Spotify, iTunes, Google Podcast ve YouTube bağlantılarını da bir arada bulabilirsiniz.
Aklımdan Geçen
Komünite Seç
Aklımdan Geçen
Fark Ettim ki...
Bugün Öğrendim ki...
İşe Yarar İpucu
Bilim Haberleri
Hikaye Fikri
Video Konu Önerisi
Başlık
Gündem
Kafana takılan neler var?
Bağlantı
Kurallar
Komünite Kuralları
Bu komünite, aklınızdan geçen düşünceleri Evrim Ağacı ailesiyle paylaşabilmeniz içindir. Yapacağınız paylaşımlar Evrim Ağacı'nın kurallarına tabidir. Ayrıca bu komünitenin ek kurallarına da uymanız gerekmektedir.
1
Bilim kimliğinizi önceleyin.
Evrim Ağacı bir bilim platformudur. Dolayısıyla aklınızdan geçen her şeyden ziyade, bilim veya yaşamla ilgili olabilecek düşüncelerinizle ilgileniyoruz.
2
Propaganda ve baskı amaçlı kullanmayın.
Herkesin aklından her şey geçebilir; fakat bu platformun amacı, insanların belli ideolojiler için propaganda yapmaları veya başkaları üzerinde baskı kurma amacıyla geliştirilmemiştir. Paylaştığınız fikirlerin değer kattığından emin olun.
3
Gerilim yaratmayın.
Gerilim, tersleme, tahrik, taciz, alay, dedikodu, trollük, vurdumduymazlık, duyarsızlık, ırkçılık, bağnazlık, nefret söylemi, azınlıklara saldırı, fanatizm, holiganlık, sloganlar yasaktır.
4
Değer katın; hassas konulardan ve öznel yoruma açık alanlardan uzak durun.
Bu komünitenin amacı okurlara hayatla ilgili keyifli farkındalıklar yaşatabilmektir. Din, politika, spor, aktüel konular gibi anlık tepkilere neden olabilecek konulardaki tespitlerden kaçının. Ayrıca aklınızdan geçenlerin Türkiye’deki bilim komünitesine değer katması beklenmektedir.
5
Cevap hakkı doğurmayın.
Bu platformda cevap veya yorum sistemi bulunmamaktadır. Dolayısıyla aklınızdan geçenlerin, tespit edilebilir kişilere cevap hakkı doğurmadığından emin olun.
Gönder
Ekle
Soru Sor
Geri Bildirim Gönder
ve seni takip ediyor
Evrim Ağacı Uygulamasını
İndir
Chromium Tabanlı Mobil Tarayıcılar (Chrome, Edge, Brave vb.)
İlk birkaç girişinizde zaten tarayıcınız size uygulamamızı indirmeyi önerecek. Önerideki tuşa tıklayarak uygulamamızı kurabilirsiniz. Bu öneriyi, yukarıdaki videoda görebilirsiniz. Eğer bu öneri artık gözükmüyorsa, Ayarlar/Seçenekler (⋮) ikonuna tıklayıp, Uygulamayı Yükle seçeneğini kullanabilirsiniz.
Chromium Tabanlı Masaüstü Tarayıcılar (Chrome, Edge, Brave vb.)
Yeni uygulamamızı kurmak için tarayıcı çubuğundaki kurulum tuşuna tıklayın. "Yükle" (Install) tuşuna basarak kurulumu tamamlayın. Dilerseniz, Evrim Ağacı İleri Web Uygulaması'nı görev çubuğunuza sabitleyin. Uygulama logosuna sağ tıklayıp, "Görev Çubuğuna Sabitle" seçeneğine tıklayabilirsiniz. Eğer bu seçenek gözükmüyorsa, tarayıcının Ayarlar/Seçenekler (⋮) ikonuna tıklayıp, Uygulamayı Yükle seçeneğini kullanabilirsiniz.
Safari Mobil Uygulama
Sırasıyla Paylaş -> Ana Ekrana Ekle -> Ekle tuşlarına basarak yeni mobil uygulamamızı kurabilirsiniz. Bu basamakları görmek için yukarıdaki videoyu izleyebilirsiniz.

Daha fazla bilgi almak için tıklayın

Önizleme
Görseli Kaydet
Sıfırla
Vazgeç
Ara

Göster

Şifremi unuttum Üyelik Aktivasyonu

Göster

Şifrenizi mi unuttunuz? Lütfen e-posta adresinizi giriniz. E-posta adresinize şifrenizi sıfırlamak için bir bağlantı gönderilecektir.

Geri dön

Eğer aktivasyon kodunu almadıysanız lütfen e-posta adresinizi giriniz. Üyeliğinizi aktive etmek için e-posta adresinize bir bağlantı gönderilecektir.

Geri dön

Close