Pemrograman Fungsional - Polimorfisme
Polimorfisme, dalam istilah pemrograman, berarti menggunakan kembali satu kode beberapa kali. Lebih khusus lagi, ini adalah kemampuan program untuk memproses objek secara berbeda tergantung pada tipe data atau kelasnya.
Polimorfisme terdiri dari dua jenis -
Compile-time Polymorphism - Jenis polimorfisme ini dapat dicapai dengan menggunakan metode overloading.
Run-time Polymorphism - Jenis polimorfisme ini dapat dicapai dengan menggunakan metode overriding dan fungsi virtual.
Keuntungan Polimorfisme
Polimorfisme menawarkan keuntungan sebagai berikut -
Ini membantu programmer untuk menggunakan kembali kode, yaitu, kelas yang pernah ditulis, diuji, dan diimplementasikan dapat digunakan kembali sesuai kebutuhan. Menghemat banyak waktu.
Variabel tunggal dapat digunakan untuk menyimpan beberapa tipe data.
Mudah untuk men-debug kode.
Jenis Data Polimorfik
Tipe data polimorfik dapat diimplementasikan dengan menggunakan pointer umum yang menyimpan alamat byte saja, tanpa tipe data yang disimpan pada alamat memori tersebut. Sebagai contoh,
function1(void *p, void *q)
dimana p dan q adalah petunjuk umum yang dapat digunakan int, float (atau lainnya) sebagai argumen.
Fungsi Polimorfik di C ++
Program berikut menunjukkan bagaimana menggunakan fungsi polimorfik di C ++, yang merupakan bahasa pemrograman berorientasi objek.
#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;
}
Ini akan menghasilkan keluaran sebagai berikut -
A class method is called
B class method is called
Fungsi Polimorfik dengan Python
Program berikut menunjukkan bagaimana menggunakan fungsi polimorfik dengan Python, yang merupakan bahasa pemrograman fungsional.
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)
Ini akan menghasilkan keluaran sebagai berikut -
A class method is called
B class method is called