OOPS'de Polimorfizm: Polimorfizm Nedir [Ayrıntılı Açıklama]

Yayınlanan: 2020-11-24

OOP'lerdeki polimorfizm, ayrılmaz ve her nesne yönelimli programlama dilinin temel bir kavramıdır. Bir nesne veya referans, temelde farklı durumlarda birden çok biçim alabilir. Kelimeden de anlaşılacağı gibi, 'poli' 'çok' anlamına gelir ve 'biçim', 'biçimler' noktasındadır; bu nedenle, bir bütün olarak polimorfizm 'birçok forma sahip olma özelliği' anlamına gelir.

Nesne yönelimli programlama dili, sınıfları ve nesneleri tek bir arabirimle işler. İşlev aşırı yükleme, geçersiz kılma ve sanal işlevler kavramlarını uygular. Ayrıca, genellikle programlamada kalıtımı denetlemek için kullanılır.

Okuyun: Polimorfizm ve Kalıtım

İçindekiler

OOP'lerde Bir Polimorfizm Örneği

Polimorfizm, nesne yönelimli bir programlama dilinde, onu çağıran nesnenin sınıfına göre farklı şeyler gerçekleştiren yöntemdir. Polimorfizm ile birden çok sınıf nesnesine bir mesaj gönderilir ve her nesne sınıfın özelliklerine göre uygun şekilde yanıt verir.

Polimorfizmi açıkça açıklayan kod aşağıdadır:

uyarıları kullanın;
# Paket sınıfı oluşturma
paket A;
# Oluşturucu Oluşturma
alt yeni
{
# shift paket adını alacak
# ve onu 'sınıf' değişkenine atayın
benim $sınıfım = vardiya;
benim $kendim = {
'isim' => vardiya,
'roll_no' => vardiya
};
alt yöntem
{
print(“Bu A sınıfına aittir”);
}
};
paket B;
# @ISA dizisi bir liste içerir
# varsa o sınıfın üst sınıfları
@ISA = (A);

alt yöntem
{
print(“Bu, B sınıfına aittir”);
}
paket ana;
B->yöntem();
A->yöntem();

Çıktı:

Bu B sınıfına aittir

Bu A sınıfına aittir

Swiggy, Quora, IMDB ve daha fazlası gibi uygulamalar oluşturmayı öğrenin

Açıklama

İlk çıktı için, B sınıfında tanımlanan method(), A sınıfından devralınan tanımı geçersiz kılar ve ikinci çıktı için bunun tersi geçerlidir. Bu özellik, tüm sınıfın tüm tanımını yeniden yazmadan önceden var olan herhangi bir paketin işlevselliğini genişletmede faydalıdır. Böylece programcının işini kolaylaştırması ve yaygın olarak kullanılmasının sebebidir.

Hatada Polimorfizm Türleri

Nesneye Yönelik Programlama (OOPS) dilinde aşağıdaki gibi iki tür polimorfizm vardır:

  1. Statik Bağlama (veya Derleme zamanı) Polimorfizmi, ör. Yöntem Aşırı Yüklemesi
  2. Dinamik Bağlama (veya Çalışma Zamanı) Polimorfizmi, ör. Yöntem geçersiz kılma

Kaynak

1. Derleme Süresi veya Statik Polimorfizm

Yöntem Aşırı Yüklemesi ile, programcının çeşitli yöntemleri uygulamasına izin veren Nesne Yönelimli Programlama dillerinde statik polimorfizm elde edilir. Kullandıkları isimler aynı olabilir, ancak parametreleri farklıdır. Aşağıdaki gibi belirli koşullar statik polimorfizm için elverişlidir:

  • Tüm Parametrelerin türleri farklı olmalıdır.
  • Parametrelerin sırası farklı olabilir.
  • Bir yöntemin parametre sayısı diğer yöntemden farklı olmalıdır.

Statik bağlama polimorfizminde , eşleşen argüman türü ve sayısı aşırı yüklenmiş işlevleri çağırır.

  • Tüm bu bilgiler derleme sırasında mevcut olduğundan, derleyici uygun işlevi seçer.
  • İşlev aşırı yüklemesi bunu yapar ve operatör aşırı yüklemesi ayrıca statik bağlama veya erken bağlama olarak da adlandırılır.

programı

A sınıfı // temel sınıf

{

int a;

kamu :

geçersiz ekran()

{

cout<< “A Sınıfı” ;

}

};

sınıf B: genel A // türetilmiş sınıf

{

int b;

kamu :

geçersiz ekran()

{

cout<< “B Sınıfı” ;

}

};

Yukarıdaki programda, display() fonksiyon prototipi hem temel hem de türetilmiş sınıflarda aynıdır. Bu nedenle, statik bağlama burada uygulanamaz. Bu program, uygun bir işlev seçimiyle çalışma zamanında en iyi şekilde çalışır.

  • Çalışma süresi boyunca, dilin derleyicisi, bu yöntemlerin imzalarını tanımlayarak çeşitli yöntemleri tanımlar.
  • Derleyici önce yöntem imzasını tanımlar ve program derlemesi sırasında belirli bir yöntem çağrısı için yönteme karar verir.
  • Derleme zamanı Polimorfizminin yürütülmesi çok daha hızlıdır ancak süreç o kadar esnek değildir.

Ayrıca Okuyun: OOPS Mülakat Soruları

Çalışma Zamanı veya Dinamik Polimorfizm

Dinamik Polimorfizm'de, bir programın çalışma zamanı sırasında geçersiz kılınan tek bir yönteme yapılan çağrı çözülür. Yöntem geçersiz kılma, Çalışma Zamanı Polimorfizminin önde gelen örneklerinden biridir. Bu süreçte geçersiz kılma, işaretçiler ve sanal işlevler aracılığıyla yapılır.

  • Yöntem Geçersiz Kılma'da, bir üst sınıfta bulunan bir alt sınıfta tek bir yöntem bildirilir. Alt sınıf, uygulama için bir yöntem kazanır.
  • Çalışma Zamanı Polimorfizmi sırasında sınıf, kendisine ait olan bir başka kalıtsal yönteme belirtim sunar. Yöntemler arasındaki bu aktarım, üst sınıf nesne kodlarını değiştirmeden gerçekleştirilir.

programı

#include <iostream>

ad alanı std kullanarak ;

sınıf Hayvan { // temel sınıf

kamu :

dize rengi = “Kahverengi” ;

};

class Dog: public Animal // Animal sınıfını devralır.

{

kamu :

dize rengi = “Yeşil” ;

};

int ana( boşluk ) {

Hayvan d= Köpek();

cout<<d.color;

}

Çıktı:

kahverengi

  • Çalışma zamanı polimorfizminde, nesnenin yöntemi derleme zamanı yerine çalışma zamanında çağrılır.
  • Dinamik bağlama veya geç bağlama olarak da adlandırılan yöntem geçersiz kılma ile mümkün olur.
  • Dinamik polimorfizm süreci, derleme zamanı polimorfizminden nispeten daha yavaş ancak esnektir.

Farklılıklar S/B Derleme Zamanı ve Çalışma Zamanı Polimorfizmi

Derleme Zamanı Polimorfizmi Çalışma Zamanı Polimorfizmi
Fonksiyonun Çağrılması İşlev, derleme zamanında çağrılır. İşlev, çalışma zamanında çağrılır.
Ortak Terimler Aşırı yükleme, erken bağlama ve statik bağlama olarak bilinir. Geçersiz kılma, geç bağlama ve dinamik bağlama olarak bilinir.
Yöntem Adı ve Parametreler Aşırı Yüklemede, birden fazla yöntem aynı ada ancak farklı sayıda veya türde parametreye sahiptir. Geçersiz Kılma'da, birden fazla yöntem aynı ada, numaraya ve parametre türüne sahiptir.
taşıyıcılar İşlev ve operatör aşırı yüklemesi ile elde edilir. Sanal işlevler ve işaretçiler ile elde edilir.
Uygulama vakti Derleme zamanında çalışma zamanı polimorfizminden daha hızlı yürütülür. Çalışma zamanında derleme zamanı polimorfizminden daha yavaş yürütülür.
Esneklik Her şey derleme zamanında yürütüldüğü için daha az esnektir. Her şey çalışma zamanında yürütüldüğünden daha esnektir.

Son sözler

Polimorfizm, programlama sırasında çeşitli avantajlar sunduğu için OOP'lerin kavramlarını öğrenmesi gereken bir şeydir. Polimorfizm ile kullanıcı, test edilen sınıfları ve kodları yeniden modelleyebilir. Programlamayı kendi başına genişletmek için kullanışlıdır. Ayrıca, aramayı ve uygulamayı kolaylaştırmak için kullanıcının double, Float, Int veya Long gibi birden çok farklı türdeki değişkeni tek bir değişkende saklamasına olanak tanır.

OOP'ler, tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje sunan Tam Yığın Yazılım Geliştirme PG Diplomasına göz atın ve görevler, IIIT-B Mezunları durumu, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Tam Yığın Geliştirici Olun

YAZILIM GELİŞTİRMEDE YÜKSELTME VE IIIT-BANGALORE'NİN PG DİPLOMASI
Daha fazla bilgi edin