Функциональное программирование - полиморфизм

Полиморфизм в терминах программирования означает многократное повторное использование одного кода. Более конкретно, это способность программы обрабатывать объекты по-разному в зависимости от их типа данных или класса.

Полиморфизм бывает двух типов -

  • Полиморфизм времени компиляции - этот тип полиморфизма может быть достигнут с использованием перегрузки метода.

  • Полиморфизм во время выполнения - этот тип полиморфизма может быть достигнут с использованием переопределения метода и виртуальных функций.

Преимущества полиморфизма

Полиморфизм предлагает следующие преимущества -

  • Это помогает программисту повторно использовать коды, т. Е. Классы, когда они написаны, протестированы и реализованы, могут быть повторно использованы по мере необходимости. Экономит много времени.

  • Одна переменная может использоваться для хранения нескольких типов данных.

  • Легко отлаживать коды.

Полиморфные типы данных

Полиморфные типы данных могут быть реализованы с использованием универсальных указателей, которые хранят только байтовый адрес, без типа данных, хранящихся по этому адресу памяти. Например,

function1(void *p, void *q) 

где p и q являются общими указателями, которые могут содержать значение типа int, float (или любое другое) в качестве аргумента.

Полиморфная функция в C ++

Следующая программа показывает, как использовать полиморфные функции в C ++, который является объектно-ориентированным языком программирования.

#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 class method is called 
B class method is called 

Полиморфная функция в Python

Следующая программа показывает, как использовать полиморфные функции в Python, который является функциональным языком программирования.

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 class method is called 
B class method is called