Учебники

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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, который является функциональным языком программирования.

Live Demo

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) 

Это даст следующий результат —