Perbedaan Antara Overriding dan Overloading

Perbedaan Antara Overriding dan Overloading
Perbedaan Antara Overriding dan Overloading

Video: Perbedaan Antara Overriding dan Overloading

Video: Perbedaan Antara Overriding dan Overloading
Video: Pengantar Ekonomi! Apa perbedaan antara Barang Konsumsi & Barang Produksi? 2024, November
Anonim

Overriding vs Overloading

Metode Overriding dan Method Overloading adalah dua konsep/teknik/fitur yang ditemukan dalam beberapa bahasa pemrograman. Kedua konsep memungkinkan programmer untuk menyediakan implementasi yang berbeda untuk metode dengan nama yang sama. Metode overriding memungkinkan pemrogram untuk memberikan implementasi alternatif di dalam subkelas ke metode yang sudah ditentukan 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 metodenya sendiri atau secara opsional dapat memiliki implementasinya sendiri ke metode yang sudah ditentukan di kelas induknya (atau salah satu kelas induk besarnya). Jadi ketika yang terakhir terjadi, itu disebut metode overriding. Dengan kata lain, jika kelas anak memberikan implementasi ke metode dengan tanda tangan dan tipe pengembalian yang sama dengan metode yang sudah didefinisikan di salah satu kelas induknya, metode tersebut dikatakan ditimpa (diganti) oleh implementasi kelas anak.. Jadi, jika ada metode yang diganti di kelas, sistem runtime harus memutuskan implementasi metode mana yang digunakan. Masalah ini diselesaikan dengan melihat jenis objek yang tepat yang digunakan untuk memanggilnya. Jika objek dari kelas induk digunakan untuk memanggil metode yang ditimpa, 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?

Method 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 pengembalian yang berbeda (atau keduanya). Misalnya, jika Anda memiliki metode1(tipe1 t1) dan metode1(tipe2 t2) di dalam kelas yang sama, maka mereka kelebihan beban. Kemudian sistem harus memutuskan mana yang akan dieksekusi ketika dipanggil. Diferensiasi ini dibuat dengan melihat jenis parameter yang dilewatkan ke metode. Jika argumen bertipe1, maka implementasi pertama dipanggil, sedangkan jika bertipe2, maka implementasi kedua dipanggil.

Apa perbedaan 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 overriding selalu berada dalam kelas yang berbeda, sedangkan subjek metode overloading tetap berada dalam kelas yang sama. Itu berarti mengesampingkan hanya mungkin dalam bahasa pemrograman berorientasi objek yang memungkinkan pewarisan, sementara kelebihan beban dapat tersedia dalam bahasa non-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 diganti memiliki nama metode, tanda tangan metode, dan tipe pengembalian yang sama, tetapi metode yang kelebihan beban harus berbeda dalam tanda tangan atau tipe pengembalian (nama harus sama). Untuk membedakan antara dua metode yang ditimpa, jenis objek yang tepat yang digunakan untuk memanggil id metode yang digunakan, sedangkan untuk membedakan antara dua metode yang kelebihan beban, jenis parameter digunakan. Perbedaan utama lainnya adalah bahwa kelebihan beban diselesaikan pada waktu kompilasi, sementara penggantian diselesaikan pada saat runtime.

Direkomendasikan: