Fonksiyonel Programlama - Polimorfizm

Çok biçimlilik, programlama açısından, tek bir kodun birden çok kez yeniden kullanılması anlamına gelir. Daha spesifik olarak, bir programın nesneleri veri türüne veya sınıfına bağlı olarak farklı şekilde işleme yeteneğidir.

Polimorfizm iki türdendir -

  • Compile-time Polymorphism - Bu tür polimorfizm, yöntem aşırı yükleme kullanılarak elde edilebilir.

  • Run-time Polymorphism - Bu tür polimorfizm, yöntemi geçersiz kılma ve sanal işlevler kullanılarak elde edilebilir.

Polimorfizmin Avantajları

Polimorfizm aşağıdaki avantajları sunar -

  • Programcının kodları yeniden kullanmasına yardımcı olur, yani sınıflar yazıldıktan, test edildikten ve uygulandıktan sonra gerektiği gibi yeniden kullanılabilir. epeyce zaman kazandırır.

  • Birden çok veri türünü depolamak için tek değişken kullanılabilir.

  • Kodlarda hata ayıklamak kolaydır.

Polimorfik Veri Türleri

Polimorfik veri türleri, bu bellek adresinde depolanan veri türü olmadan yalnızca bir bayt adresini saklayan genel işaretçiler kullanılarak uygulanabilir. Örneğin,

function1(void *p, void *q)

nerede p ve q tutabilecek genel işaretçilerdir int, float (veya başka herhangi bir) bağımsız değişken olarak değer.

C ++ 'da Polimorfik Fonksiyon

Aşağıdaki program, nesne yönelimli bir programlama dili olan C ++ 'da polimorfik fonksiyonların nasıl kullanılacağını göstermektedir.

#include <iostream> 
Using namespace std: 

class A {  
   public: 
   void show() {    
      cout << "A class method is called/n"; 
   } 
}; 

class B:public A { 
   public: 
   void show() {   
      cout << "B class method is called/n"; 
   } 
};  

int main() {   
   A x;        // Base class object 
   B y;        // Derived class object 
   x.show();   // A class method is called 
   y.show();   // B class method is called 
   return 0; 
}

Aşağıdaki çıktıyı üretecektir -

A class method is called 
B class method is called

Python'da Polimorfik Fonksiyon

Aşağıdaki program, işlevsel bir programlama dili olan Python'da polimorfik fonksiyonların nasıl kullanılacağını göstermektedir.

class A(object): 
   def show(self): 
      print "A class method is called" 
  
class B(A): 
   def show(self): 
      print "B class method is called" 
  
def checkmethod(clasmethod): 
   clasmethod.show()  

AObj = A() 
BObj = B() 
  
checkmethod(AObj) 
checkmethod(BObj)

Aşağıdaki çıktıyı üretecektir -

A class method is called 
B class method is called