การเขียนโปรแกรมเชิงฟังก์ชัน - ความหลากหลาย

Polymorphism ในแง่ของการเขียนโปรแกรมหมายถึงการนำรหัสเดียวกลับมาใช้ซ้ำหลาย ๆ ครั้ง โดยเฉพาะอย่างยิ่งความสามารถของโปรแกรมในการประมวลผลวัตถุที่แตกต่างกันขึ้นอยู่กับประเภทข้อมูลหรือคลาส

ความหลากหลายเป็นสองประเภท -

  • Compile-time Polymorphism - ความหลากหลายประเภทนี้สามารถทำได้โดยใช้วิธีการโอเวอร์โหลด

  • Run-time Polymorphism - ความหลากหลายประเภทนี้สามารถทำได้โดยใช้วิธีการแทนที่และฟังก์ชันเสมือน

ข้อดีของ Polymorphism

Polymorphism มีข้อดีดังต่อไปนี้ -

  • ช่วยให้โปรแกรมเมอร์สามารถนำรหัสกลับมาใช้ใหม่กล่าวคือคลาสที่เขียนทดสอบและนำไปใช้งานแล้วสามารถนำกลับมาใช้ใหม่ได้ตามต้องการ ประหยัดเวลาได้มาก

  • ตัวแปรเดียวสามารถใช้เพื่อจัดเก็บข้อมูลหลายประเภท

  • ง่ายต่อการดีบักรหัส

ประเภทข้อมูลแบบ Polymorphic

ชนิดข้อมูลแบบ Polymorphic สามารถใช้งานได้โดยใช้พอยน์เตอร์ทั่วไปที่เก็บไบต์แอดเดรสเท่านั้นโดยไม่ต้องจัดเก็บข้อมูลประเภทที่อยู่หน่วยความจำนั้น ตัวอย่างเช่น,

function1(void *p, void *q)

ที่ไหน p และ q เป็นตัวชี้ทั่วไปที่สามารถถือได้ int, float (หรืออื่น ๆ ) ค่าเป็นอาร์กิวเมนต์

ฟังก์ชัน Polymorphic ใน C ++

โปรแกรมต่อไปนี้แสดงวิธีใช้ฟังก์ชัน polymorphic ใน 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

ฟังก์ชัน Polymorphic ใน Python

โปรแกรมต่อไปนี้แสดงวิธีใช้ฟังก์ชัน polymorphic ใน 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