Perbedaan Antara Overriding dan Overloading

Overriding vs Overloading

Metode Overriding dan metode Overloading adalah dua konsep / teknik / fitur yang ditemukan dalam beberapa bahasa pemrograman. Kedua konsep memungkinkan programmer untuk memberikan implementasi yang berbeda untuk metode dengan nama yang sama. Metode overriding memungkinkan programmer untuk memberikan implementasi alternatif dalam sub kelas ke metode yang sudah didefinisikan di dalam kelas supernya. Metode overloading memungkinkan programmer untuk memberikan implementasi yang berbeda untuk beberapa metode dengan nama yang sama (dalam kelas yang sama).

Apa itu Overriding?

Seperti disebutkan di atas, sebuah kelas dapat memperluas kelas super atau kelas induk, dalam bahasa pemrograman berorientasi objek. Kelas anak dapat memiliki metode sendiri atau secara opsional dapat memiliki implementasi sendiri untuk metode yang sudah didefinisikan dalam kelas induknya (atau salah satu kelas grand parent-nya). Jadi ketika yang terakhir terjadi, itu disebut metode overriding. Dengan kata lain, jika kelas anak menyediakan implementasi ke metode dengan tanda tangan yang sama dan jenis kembali sebagai metode yang sudah didefinisikan dalam salah satu kelas induknya, metode itu dikatakan diganti (diganti) dengan penerapan kelas anak . Jadi, jika ada metode yang ditimpa dalam suatu kelas, sistem runtime harus memutuskan implementasi metode mana yang digunakan. Masalah ini diatasi dengan melihat jenis objek yang digunakan untuk memintanya. Jika objek dari kelas induk digunakan untuk memanggil metode yang diganti, maka implementasi di kelas induk digunakan. Demikian pula, jika itu adalah objek dari kelas anak yang digunakan, maka implementasi kelas anak digunakan. Bahasa pemrograman modern seperti Java, Eifell, C ++ dan Python memungkinkan metode overriding.

Apa itu Overloading??

Metode overloading adalah fitur yang disediakan oleh beberapa bahasa pemrograman untuk membuat lebih dari satu metode dengan nama yang sama, tetapi dengan tipe input dan output yang berbeda. Dalam bahasa pemrograman modern seperti Java, C #, C ++ dan VB.NET, fitur ini tersedia. Anda bisa membebani metode dengan membuat metode lain dengan nama yang sama tetapi dengan tanda tangan metode yang berbeda atau jenis pengembalian yang berbeda (atau keduanya). Misalnya, jika Anda memiliki method1 (type1 t1) dan method1 (type2 t2) di dalam kelas yang sama, maka mereka kelebihan beban. Maka sistem harus memutuskan mana yang akan dieksekusi ketika dipanggil. Diferensiasi ini dibuat dengan melihat tipe parameter yang diteruskan ke metode. Jika argumennya adalah type1, maka implementasi pertama disebut, sedangkan jika itu adalah type2, maka implementasi kedua disebut.

Apa perbedaan antara Overriding dan Overloading?

Meskipun, metode overriding dan metode overloading digunakan untuk menyediakan metode dengan implementasi yang berbeda, ada perbedaan utama antara kedua konsep / teknik ini. Pertama-tama, subjek metode override selalu berada dalam kelas yang berbeda, sementara subjek metode overloading tetap berada dalam kelas yang sama. Itu berarti mengesampingkan hanya mungkin dalam bahasa pemrograman berorientasi objek yang memungkinkan pewarisan, sementara overloading dapat tersedia dalam bahasa yang tidak berorientasi objek juga. Dengan kata lain, Anda mengganti metode di kelas super tetapi Anda membebani metode di dalam kelas Anda sendiri.

Perbedaan lainnya adalah bahwa metode yang ditimpa memiliki nama metode yang sama, metode tanda tangan dan jenis kembali, tetapi metode kelebihan beban harus berbeda dalam tanda tangan atau jenis kembali (nama harus sama). Untuk membedakan antara dua metode yang diganti, jenis objek yang digunakan untuk memanggil metode id digunakan, sedangkan untuk membedakan antara dua metode kelebihan beban, jenis parameter yang digunakan. Perbedaan utama lainnya adalah overloading diselesaikan pada waktu kompilasi, sementara overriding diselesaikan pada saat runtime.