การเขียนโปรแกรมเชิงฟังก์ชัน - ความหลากหลาย
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