Itu perbedaan utama antara overriding dan overloading di C # adalah itu pengikatan pemanggilan metode yang ditimpa ke definisi terjadi pada saat runtime sedangkan pengikatan pemanggilan metode yang overload ke definisi terjadi pada waktu kompilasi.
C # adalah bahasa pemrograman tujuan umum yang dikembangkan oleh Microsoft. Keuntungan utama C # adalah mendukung Pemrograman Berorientasi Objek (OOP). Salah satu pilar OOP adalah Polimorfisme. Ini memberi objek untuk memiliki beberapa perilaku. Ada dua jenis dalam Polimorfisme yang dikenal sebagai overriding dan overloading. Artikel ini membahas perbedaan antara metode overriding dan overloading di C #.
1. Ikhtisar dan Perbedaan Utama
2. Apa yang Overriding dalam C #
3. Apa itu Overloading di C #
4. Kesamaan Antara Overriding dan Overloading di C #
5. Perbandingan Berdampingan - Overriding vs Overloading dalam C # dalam Bentuk Tabular
6. Ringkasan
Ada satu konsep penting lainnya dalam OOP yaitu pewarisan. Ini adalah dengan menggunakan atribut dan metode dari kelas yang sudah ada. Ini meningkatkan penggunaan kembali kode. Kelas yang sudah ada adalah kelas dasar, dan kelas baru dikenal sebagai kelas turunan. Dalam mengesampingkan polimorfisme, harus ada kelas dasar dan kelas turunan. Pengikatan pemanggilan metode yang ditimpa ke definisi terjadi saat runtime. Contohnya adalah sebagai berikut.
Gambar 01: Program C # dengan Mengesampingkan
Menurut program di atas, Bentuk kelas adalah kelas dasar, dan itu berisi metode tampilan. Kelas Rectangle dan Triangle adalah kelas turunan. Kelas-kelas turunan ini juga memiliki tampilan metode yang sama dengan implementasinya sendiri.
Pertama, obj variabel referensi dibuat. Ini menunjuk ke objek Shape. Jadi, metode tampilan kelas Shape akan mengeksekusi. Kemudian, variabel referensi menunjuk ke objek Rectangle. Jadi, metode tampilan kelas Rectangle akan dieksekusi. Akhirnya, variabel referensi menunjuk ke objek Triangle. Jadi, metode tampilan kelas Triangle akan dieksekusi. Metode tampilan kelas dasar ditimpa oleh metode tampilan kelas turunan.
Metode untuk menjalankan ditentukan pada saat runtime. Kelas Shape ditulis dengan kata kunci 'virtual'. Kelas Rectangle dan Triangle ditulis dengan kata kunci 'override'. Jika kata kunci ini tidak digunakan, output akan mencetak konten dari metode tampilan kelas Shape untuk semua.
Dalam overloading, beberapa metode memiliki nama yang sama tetapi dengan parameter yang berbeda. Parameter dapat dari berbagai jenis. Metode juga dapat memiliki jumlah parameter yang berbeda. Metode overloading terjadi di kelas yang sama. Pengikatan metode kelebihan beban dengan definisi terjadi pada waktu kompilasi. Lihat program C # di bawah ini.
Gambar 02: Program C # dengan Overloading
Menurut program di atas, kelas A memiliki dua metode dengan nama yang sama yang disebut jumlah. Mereka memiliki berbagai jenis parameter. Dalam program utama, objek A dibuat. Jumlah (2,3) akan memanggil metode penjumlahan dengan bilangan bulat. Jumlahnya (5.1, 7.94) akan memanggil metode penjumlahan dengan nilai ganda. Kedua metode memiliki nama yang sama dan jumlah parameter yang sama. Tetapi tipe-tipe parameternya berbeda. Metode yang diperlukan disebut sesuai. Overloading juga dapat terjadi jika nama metode dan tipe parameter sama tetapi jumlah parameter berbeda.
Overriding vs Overloading dalam C # | |
Overriding dalam C # adalah untuk menyediakan implementasi spesifik dalam metode kelas turunan untuk metode yang sudah ada di kelas dasar. | Overloading di C # adalah membuat banyak metode dengan nama yang sama dengan implementasi yang berbeda. |
Parameter | |
Dalam C # Overriding, metode memiliki nama yang sama, tipe parameter yang sama dan jumlah parameter yang sama. | Dalam C # Kelebihan, metode memiliki nama yang sama tetapi jumlah parameter yang berbeda atau jenis parameter yang berbeda. |
Kejadian | |
Dalam C #, pengesampingan terjadi dalam kelas dasar dan kelas turunan. | Dalam C #, kelebihan beban terjadi dalam kelas yang sama. |
Waktu yang mengikat | |
Pengikatan pemanggilan metode yang ditimpa ke definisi terjadi saat runtime. | Pengikatan pemanggilan metode berlebih ke definisi terjadi pada waktu kompilasi. |
Sinonim | |
Overriding disebut sebagai polimorfisme runtime, polimorfisme yang dinamis atau mengikat terlambat. | Overloading disebut sebagai kompilasi polimorfisme waktu, polimorfisme statis atau mengikat awal. |
Overriding dan Overloading adalah dua jenis polimorfisme. Perbedaan antara overriding dan overloading di C # adalah bahwa pengikatan pemanggilan metode yang ditimpa ke definisi terjadi pada saat runtime sedangkan pengikatan pemanggilan metode yang berlebih untuk definisinya terjadi pada waktu kompilasi.
1.Kumar, Mukesh. C # Pojok. Tersedia disini
2.tutorialspoint.com. "C # Polimorfisme." TutorialsPoint. Tersedia disini
3.tutorialspoint.com. "C # Jenis Data." TutorialsPoint, Tersedia di sini