函数式编程 - 多态性



多态性,在编程中,意味着多次复用同一代码。更具体地说,它是程序能够根据对象的数据类型或类不同而对对象进行不同处理的一种能力。

多态性有两种类型 −

  • 编译时多态性 − 这类多态性可以使用方法重载来实现。

  • 运行时多态性 − 这类多态性可以使用方法重写和虚函数来实现。

多态性的优势

多态性有以下优势 −

  • 它能够帮助程序员复用代码,即可以对已经编写、测试并实现的类根据需要进行复用。节省大量的时间。

  • 单个变量可以用来存储多个数据类型。

  • 容易对代码进行调试。

多态数据类型

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

function1(void *p, void *q) 

其中 pq 是可以持有 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 
广告