📜  函数式编程-多态

📅  最后修改于: 2021-01-07 05:17:56             🧑  作者: Mango


就编程而言,多态性意味着多次重用单个代码。更具体地说,它是程序根据对象的数据类型或类对对象进行不同处理的能力。

多态性有两种类型-

  • 编译时多态-使用方法重载可以实现这种类型的多态。

  • 运行时多态-使用方法重载和虚函数可以实现这种类型的多态。

多态的优势

多态性具有以下优点-

  • 它有助于程序员重用代码,即,一旦编写,测试和实现的类就可以按需重用。节省大量时间。

  • 单个变量可用于存储多种数据类型。

  • 易于调试代码。

多态数据类型

可以使用仅存储字节地址的通用指针来实现多态数据类型,而无需将数据类型存储在该内存地址中。例如,

function1(void *p, void *q) 

其中pq是通用指针,可以将int,float (或任何其他)值保存为参数。

C++中的多态函数

以下程序显示了如何在C++中使用多态函数,C++是一种面向对象的编程语言。

#include  
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使用多态函数, 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