Perbedaan Antara Overloading dan Overriding | Overloading vs Overriding

Diterbitkan: 2021-06-15

Daftar isi

pengantar

Pemrograman Berorientasi Objek memainkan peran penting dalam sektor pengembangan perangkat lunak. Beberapa konsep terkait dengan jenis pemrograman ini seperti kelas, objek, polimorfisme, pewarisan, abstraksi data, pemrograman generik, dan penanganan luar biasa.

Para pengembang selalu menemukan konsep polimorfisme cukup menarik yang memiliki sub-konsep seperti metode overloading, metode overriding, dll Namun, untuk memahami konsep polimorfisme lebih baik, perbedaan antara overloading dan overriding harus dipahami.

Perbedaan Antara Metode Overloading dan Metode Overriding

Ada banyak perbedaan antara metode overloading dan metode overriding . Daftar perbedaan antara metode overloading dan overriding di java ditabulasikan di bawah ini:

Metode Kelebihan Beban Metode Override
1 Metode ini digunakan untuk meningkatkan keterbacaan program. Metode ini digunakan untuk menyediakan implementasi dari metode yang disediakan oleh superclass.
2 Itu dilakukan di dalam kelas Terjadi pada dua kelas yang memiliki hubungan IS-A (warisan). Basis dan kelas anak diperlukan untuk mengganti.
3 Metode atau fungsi harus memiliki nama yang sama dan tanda tangan yang berbeda. Metode atau fungsi harus memiliki nama yang sama dan tanda tangan yang sama.
4 Parameter yang digunakan dalam metode ini harus berbeda. Parameter yang sama harus digunakan dalam kasus metode overriding.
5 Ini adalah contoh polimorfisme waktu kompilasi. Pengikatan pemanggilan metode overloading ke definisinya terjadi pada waktu kompilasi. Ini adalah contoh polimorfisme run time. Pengikatan pemanggilan metode yang diganti ke definisinya terjadi pada saat run time.
6 Hanya dengan mengubah tipe pengembalian, metode overloading tidak dapat dilakukan. Jenis pengembalian mungkin berbeda atau sama. Tapi, parameternya harus berbeda. Jenis pengembalian dalam penggantian metode mungkin sama atau kovarian.
7 Metode overloading mungkin diterapkan pada metode statis. Ini berarti sebuah kelas dapat memiliki lebih dari satu metode statis dengan nama yang sama. Penggantian metode tidak dapat diterapkan ke metode statis.
8 Pengikatan statis digunakan untuk metode overloading. Pengikatan dinamis sedang digunakan untuk penggantian metode.
9 Performa yang lebih baik diberikan oleh metode overloading. Performa lebih rendah dibandingkan dengan metode overloading. Alasannya adalah bahwa pengikatan metode yang diganti sedang dilakukan saat runtime.
10 Metode pribadi dan final dapat kelebihan beban. Sebuah kelas dapat memiliki lebih dari satu metode private/final dengan nama yang sama. Metode pribadi dan final tidak dapat diganti. Kelas anak tidak dapat mengganti metode pribadi/final dari kelas dasarnya.
11 Warisan mungkin atau mungkin tidak diperlukan jika terjadi kelebihan metode. Warisan selalu diperlukan dalam kasus metode overriding.
12 Ini digunakan untuk menambahkan lebih banyak ke perilaku metode. Ini digunakan untuk mengubah perilaku metode yang ada.
13 Tidak perlu adanya lebih dari satu kelas dalam metode overloading. Selalu ada kebutuhan untuk setidaknya dua kelas dalam metode overriding.
14 Jika kelebihan beban rusak, kesalahan waktu kompilasi akan muncul dan mudah untuk diperbaiki. Jika menimpa jeda, itu dapat menyebabkan masalah serius dalam program kami karena efeknya akan terlihat saat runtime.
15 Metode overloading harus memiliki tanda tangan yang berbeda. Metode penggantian harus memiliki tanda tangan yang sama.
16 Pengubah akses dalam metode overloading bisa apa saja atau berbeda. Pengubah akses metode subkelas harus sama atau lebih tinggi dari pengubah akses metode superkelas dalam metode utama.
17 Pengecualian yang dilontarkan bisa berupa apa saja dalam konsep metode overloading. Dalam penggantian metode, pengecualian yang tidak dicentang dapat berupa apa saja. Untuk pengecualian yang diperiksa, metode penggantian tidak boleh membuang pengecualian apa pun yang baru atau lebih luas dari yang dideklarasikan oleh metode yang diganti.
18 Kompiler selalu menangani resolusi metode berdasarkan tipe referensi. JVM menangani resolusi metode berdasarkan objek runtime.

Pelajari Kursus Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Apa selanjutnya?

Jika Anda tertarik untuk mempelajari lebih lanjut tentang pengembangan perangkat lunak full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Full-Stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Apa itu polimorfisme runtime?

Polimorfisme runtime adalah sejenis polimorfisme yang melibatkan pengetikan dinamis. Ini berarti bahwa objek dapat dimanipulasi seolah-olah mereka adalah satu jenis. Ini mirip dengan polimorfisme statis di mana objek dimanipulasi seolah-olah mereka memiliki satu tipe, terlepas dari tipe dasarnya. Ini adalah salah satu dari lima prinsip desain perangkat lunak utama. Ini digunakan dengan pemrograman berorientasi objek. Ini berarti bahwa variabel dapat merujuk ke objek yang berbeda tergantung pada kondisi run time. Misalnya, variabel dapat digunakan untuk merujuk ke objek Anjing ketika variabel dideklarasikan, tetapi selama eksekusi program, variabel dapat merujuk ke objek Cat. Ini adalah konversi tipe otomatis. Misalnya, jika Anda memiliki variabel integer i, dan Anda menetapkan nilai string untuk itu, itu akan menjadi variabel string.

Bagaimana override berbeda dari Overloading?

Bisakah kita mengganti metode kelebihan beban?

Metode yang kelebihan beban sama dengan yang biasa (dalam hal jumlah dan jenis parameter), tetapi dengan perbedaan bahwa metode kelebihan beban ditulis sedemikian rupa sehingga dapat menerima parameter dari jenis yang berbeda dari yang biasa. Anda dapat mengganti metode yang kelebihan beban dengan cara yang sama seperti Anda mengganti yang biasa.