函數語言程式設計 - 多型性



多型性,在程式設計中,意味著多次複用同一程式碼。更具體地說,它是程式能夠根據物件的資料型別或類不同而對物件進行不同處理的一種能力。

多型性有兩種型別 −

  • 編譯時多型性 − 這類多型性可以使用方法過載來實現。

  • 執行時多型性 − 這類多型性可以使用方法重寫和虛擬函式來實現。

多型性的優勢

多型性有以下優勢 −

  • 它能夠幫助程式設計師複用程式碼,即可以對已經編寫、測試並實現的類根據需要進行復用。節省大量的時間。

  • 單個變數可以用來儲存多個數據型別。

  • 容易對程式碼進行除錯。

多型資料型別

多型資料型別可以透過使用只儲存位元組地址的通用指標來實現,而不用儲存儲存在該記憶體地址中的資料的型別。例如,

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 
廣告