Polimorfisme Dalam OOPS: Apa itu Polimorfisme [Penjelasan Mendetail]
Diterbitkan: 2020-11-24Polimorfisme dalam OOP tidak dapat dipisahkan dan merupakan konsep penting dari setiap bahasa pemrograman berorientasi objek. Sebuah objek atau referensi pada dasarnya dapat mengambil beberapa bentuk dalam contoh yang berbeda. Seperti yang disarankan oleh kata tersebut, 'poli' berarti 'banyak' dan 'morf' menunjuk pada 'bentuk'; dengan demikian, polimorfisme secara keseluruhan akan berarti 'suatu sifat yang memiliki banyak bentuk.'
Bahasa pemrograman berorientasi objek memproses kelas dan objek dengan satu antarmuka. Ini mengimplementasikan konsep fungsi overloading, overriding, dan fungsi virtual. Juga, biasanya digunakan untuk instrumentasi pewarisan dalam pemrograman.
Baca: Polimorfisme vs Warisan
Daftar isi
Contoh Polimorfisme dalam OOP
Polimorfisme adalah metode dalam bahasa pemrograman berorientasi objek yang melakukan hal-hal berbeda sesuai kelas objek, yang menyebutnya. Dengan Polimorfisme, sebuah pesan dikirim ke beberapa objek kelas, dan setiap objek merespons dengan tepat sesuai dengan properti kelas tersebut.
Berikut adalah kode yang menjelaskan polimorfisme dengan jelas:
gunakan peringatan;
# Membuat kelas paket
paket A;
# Membuat Konstruktor
sub baru
{
# shift akan mengambil nama paket
# dan tetapkan ke variabel 'kelas'
$kelas saya = shift;
$diriku = {
'nama' => geser,
'roll_no' => geser
};
sub metode
{
print("Ini termasuk kelas A");
}
};
paket B;
# Array @ISA berisi daftar
# dari kelas induk kelas itu, jika ada
saya @ISA = (A);

submetode
{
print("Ini milik kelas B");
}
paket utama;
B->metode();
A->metode();
Keluaran:
Ini milik kelas B
Ini milik kelas A
Pelajari cara membuat aplikasi seperti Swiggy, Quora, IMDB, dan lainnya
Penjelasan
Untuk keluaran pertama, metode() yang didefinisikan di kelas B mengesampingkan definisi yang diwarisi dari kelas A dan sebaliknya untuk keluaran kedua. Properti ini berguna dalam memperluas fungsionalitas paket yang sudah ada sebelumnya tanpa menulis ulang seluruh definisi seluruh kelas. Dengan demikian, memudahkan pekerjaan programmer dan alasan untuk digunakan secara luas.
Jenis Polimorfisme di Ups
Dalam bahasa Object-Oriented Programming (OOPS), ada dua jenis polimorfisme seperti di bawah ini:
- Polimorfisme Pengikatan Statis (atau waktu Kompilasi), misalnya Metode Overloading
- Polimorfisme Pengikatan Dinamis (atau Waktu Proses), mis., Penggantian metode

Sumber
1. Waktu Kompilasi atau Polimorfisme Statis
Dengan Metode Overloading, polimorfisme statis dicapai dalam bahasa Pemrograman Berorientasi Objek yang memungkinkan programmer untuk mengimplementasikan berbagai metode. Nama yang mereka gunakan bisa sama, tetapi parameternya berbeda. Kondisi tertentu kondusif untuk polimorfisme statis seperti di bawah ini:
- Jenis Semua Parameter harus berbeda.
- Urutan Parameter bisa berbeda.
- Jumlah parameter dari satu metode harus berbeda dari metode lainnya.
Dalam polimorfisme pengikatan statis , jenis dan jumlah argumen yang cocok memanggil fungsi kelebihan beban.
- Karena semua informasi ini tersedia selama waktu kompilasi, kompiler memilih fungsi yang sesuai.
- Fungsi overloading melakukannya, dan overloading operator juga disebut sebagai pengikatan statis atau pengikatan awal.
Program
kelas A // kelas dasar
{
dalam sebuah;
publik :
tampilan kosong ()
{
cout<< “Kelas A” ;
}
};
kelas B: publik A // kelas turunan
{
int b;
publik :
tampilan kosong ()
{
cout<< "Kelas B" ;
}
};
Dalam program di atas, prototipe fungsi display() adalah sama di kelas dasar dan kelas turunan. Oleh karena itu, pengikatan statis tidak dapat diterapkan di sini. Program ini akan berjalan paling baik saat dijalankan dengan pilihan fungsi yang sesuai.
- Selama waktu berjalan, kompiler bahasa mengidentifikasi berbagai metode dengan mengidentifikasi tanda tangan dari metode tersebut.
- Kompiler pertama-tama mengidentifikasi tanda tangan metode dan memutuskan metode untuk pemanggilan metode tertentu selama kompilasi program.
- Eksekusi untuk waktu Kompilasi Polimorfisme jauh lebih cepat tetapi prosesnya tidak begitu fleksibel.
Baca Juga: Pertanyaan Wawancara OOPS
Runtime atau Polimorfisme Dinamis
Dalam Polimorfisme Dinamis, panggilan ke satu metode yang diganti diselesaikan selama runtime program. Metode overriding adalah salah satu contoh menonjol dari Runtime Polymorphism. Dalam proses ini, override dilakukan melalui pointer dan fungsi virtual.
- Dalam Metode Overriding, satu metode dideklarasikan dalam sub-kelas yang ada di kelas induk. Kelas anak memperoleh metode untuk implementasi.
- Selama Polimorfisme Runtime, kelas menawarkan spesifikasinya sendiri ke metode turunan lainnya. Transfer antar metode ini dicapai tanpa memodifikasi kode objek kelas induk.
Program
#sertakan <iostream>
menggunakan namespace std;
kelas Hewan { // kelas dasar
publik :
warna string = “Coklat” ;
};
class Anjing: Hewan publik // mewarisi kelas Hewan.
{
publik :
warna string = “Hijau” ;
};
int utama( kosong ) {
Hewan d= Anjing();
cout<<d.warna;

}
Keluaran:
cokelat
- Dalam polimorfisme waktu proses, metode objek dipanggil pada waktu proses, bukan waktu kompilasi.
- Hal ini dimungkinkan dengan metode overriding, yang juga disebut sebagai dynamic binding atau late binding.
- Proses polimorfisme dinamis relatif lebih lambat tetapi fleksibel daripada polimorfisme waktu kompilasi.
Perbedaan B/W Compile-Time dan Run-Time Polimorfisme
Polimorfisme Waktu Kompilasi | Polimorfisme Waktu Jalan | |
Memanggil Fungsi | Fungsi dipanggil pada waktu kompilasi. | Fungsi dipanggil pada saat run time. |
Istilah Umum | Ini dikenal sebagai overloading, early binding, dan static binding. | Ini dikenal sebagai overriding, late binding, dan dynamic binding. |
Nama Metode dan Parameter | Pada Overloading, lebih dari satu metode memiliki nama yang sama tetapi dengan jumlah atau jenis parameter yang berbeda. | Dalam Overriding, lebih dari satu metode memiliki nama, nomor, dan jenis parameter yang sama. |
operator | Hal ini dicapai dengan fungsi dan kelebihan beban operator. | Hal ini dicapai dengan fungsi virtual dan pointer. |
Waktu eksekusi | Ini dieksekusi lebih cepat daripada polimorfisme run-time pada waktu kompilasi. | Ini dieksekusi lebih lambat daripada polimorfisme waktu kompilasi pada waktu proses. |
Fleksibilitas | Ini kurang fleksibel karena semuanya dijalankan pada waktu kompilasi. | Ini lebih fleksibel karena semuanya dijalankan pada saat run time. |
Kata-kata Terakhir
Polimorfisme adalah konsep yang harus dipelajari dari OOP karena menawarkan beberapa keuntungan saat pemrograman. Dengan Polimorfisme, pengguna dapat merombak kelas dan kode yang diuji. Hal ini berguna dalam memperluas pemrograman dengan sendirinya. Ini juga memungkinkan pengguna untuk menyimpan beberapa variabel tipe yang berbeda seperti double, Float, Int, atau Long dalam satu variabel untuk mempermudah pencarian dan penerapannya.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang OOP, pengembangan perangkat lunak full-stack, lihat PG Diploma dalam Pengembangan Perangkat Lunak Full-stack upGrad & IIIT-B yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek dan penugasan, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.