Mengganti vs Membebani
Metode Overriding dan metode Overloading adalah dua konsep / teknik / fitur yang ditemukan dalam beberapa bahasa pemrograman. Kedua konsep tersebut memungkinkan programmer untuk memberikan implementasi yang berbeda untuk metode dengan nama yang sama. Metode overriding memungkinkan pemrogram untuk memberikan implementasi alternatif dalam sub kelas ke metode yang sudah ditentukan di dalam kelas supernya. Metode overloading memungkinkan programmer untuk memberikan implementasi yang berbeda ke beberapa metode dengan nama yang sama (dalam kelas yang sama).
Apa yang Menggantikan?
Seperti disebutkan di atas, kelas dapat memperluas kelas super atau kelas induk, dalam bahasa pemrograman berorientasi objek. Kelas anak dapat memiliki metodenya sendiri atau secara opsional dapat memiliki implementasinya sendiri ke metode yang telah ditentukan dalam kelas induknya (atau salah satu kelas induknya). 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 tipe kembalian sebagai metode yang telah didefinisikan di salah satu kelas induknya, metode tersebut dikatakan diganti (diganti) oleh implementasi kelas anak.. Jadi, jika ada metode yang diganti dalam sebuah kelas, sistem runtime harus memutuskan implementasi metode mana yang digunakan. Masalah ini diatasi dengan melihat jenis objek yang digunakan untuk memanggilnya. Jika objek 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 penggantian metode.
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 dapat membebani metode dengan membuat metode lain dengan nama yang sama tetapi dengan tanda tangan metode yang berbeda atau tipe kembalian yang berbeda (atau keduanya). Misalnya, jika Anda memiliki metode1 (tipe1 t1) dan metode1 (tipe2 t2) di dalam kelas yang sama, maka mereka akan kelebihan beban. Kemudian sistem harus memutuskan mana yang akan dieksekusi ketika dipanggil. Diferensiasi ini dibuat dengan melihat jenis parameter yang telah diteruskan ke metode. Jika argumen bertipe1, maka implementasi pertama dipanggil, sedangkan jika bertipe2, implementasi kedua dipanggil.
Apa perbedaan antara Overriding dan Overloading?
Meskipun, overriding metode dan overloading metode digunakan untuk menyediakan metode dengan implementasi berbeda, ada perbedaan utama antara kedua konsep / teknik ini. Pertama-tama, subjek metode penggantian selalu berada dalam kelas yang berbeda, sedangkan subjek metode overloading tetap dalam kelas yang sama. Itu berarti menimpa hanya mungkin dalam bahasa pemrograman berorientasi objek yang memungkinkan pewarisan, sementara overloading juga dapat tersedia dalam bahasa yang tidak berorientasi objek. Dengan kata lain, Anda mengganti metode di kelas super tetapi Anda membebani metode di dalam kelas Anda sendiri.
Perbedaan lainnya adalah bahwa metode yang diganti memiliki nama metode yang sama, tanda tangan metode dan jenis kembalian, tetapi metode yang di-overload harus berbeda baik dalam tanda tangan maupun jenis kembalian (namanya harus sama). Untuk membedakan antara dua metode yang diganti, jenis objek yang tepat yang digunakan untuk memanggil metode id yang digunakan, sedangkan untuk membedakan antara dua metode yang kelebihan beban, jenis parameter yang digunakan. Perbedaan utama lainnya adalah kelebihan beban diselesaikan pada waktu kompilasi, sementara penggantian diselesaikan pada waktu proses.