Mengesampingkan vs kelebihan beban
Metode utama dan kelebihan metode adalah dua konsep/teknik/fitur yang ditemukan dalam beberapa bahasa pemrograman. Kedua konsep memungkinkan programmer 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 yang utama?
Seperti disebutkan di atas, kelas dapat memperluas kelas super atau kelas induk, dalam bahasa pemrograman berorientasi objek. Kelas anak dapat memiliki metode sendiri atau secara opsional dapat memiliki implementasinya sendiri untuk metode yang sudah didefinisikan di kelas induknya (atau salah satu kelas induk besarnya). Jadi ketika yang terakhir terjadi, itu disebut metode utama. Dengan kata lain, jika kelas anak memberikan implementasi untuk metode dengan tanda tangan dan jenis pengembalian yang sama sebagai metode yang sudah ditentukan dalam salah satu kelas induknya, metode itu dikatakan diganti (diganti) dengan implementasi kelas anak. Jadi, jika ada metode yang ditimpa di kelas, sistem runtime harus memutuskan metode implementasi mana yang digunakan. Masalah ini diselesaikan dengan melihat jenis objek yang tepat yang digunakan untuk memohonnya. Jika objek kelas induk digunakan untuk memohon metode yang ditimpa, maka implementasi di kelas induk digunakan. Demikian pula, jika itu adalah objek kelas anak yang digunakan, maka implementasi kelas anak digunakan. Bahasa pemrograman modern seperti Java, Eifell, C ++ dan Python memungkinkan metode utama.
Apa yang berlebihan?
Metode Overloading adalah fitur yang disediakan oleh beberapa bahasa pemrograman untuk membuat lebih dari satu metode dengan nama yang sama, tetapi dengan jenis 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 (type1 t1) dan method1 (type2 t2) di dalam kelas yang sama, maka mereka kelebihan beban. Maka sistem harus memutuskan mana yang akan dieksekusi saat dipanggil. Diferensiasi ini dibuat dengan melihat jenis parameter telah diteruskan ke metode. Jika argumennya dari Type1, maka implementasi pertama dipanggil, sedangkan jika itu dari Type2, maka implementasi kedua dipanggil.
Apa perbedaan antara utama dan kelebihan beban?
Meskipun, metode utama dan kelebihan metode digunakan untuk memberikan metode dengan implementasi yang berbeda, ada perbedaan utama antara dua konsep/teknik ini. Pertama -tama, subjek metode utama selalu tetap berada di dalam kelas yang berbeda, sementara subjek kelebihan metode tetap di dalam kelas yang sama. Itu berarti utama hanya dimungkinkan dalam bahasa pemrograman berorientasi objek yang memungkinkan warisan, sementara kelebihan beban dapat tersedia dalam bahasa yang tidak berorientasi objek juga. Dengan kata lain, Anda mengganti metode di kelas super tetapi Anda membebani metode dalam kelas Anda sendiri.
Perbedaan lain adalah bahwa metode yang ditimpa memiliki nama metode yang sama, tanda tangan metode dan tipe pengembalian, tetapi metode yang kelebihan beban harus berbeda dalam tanda tangan atau tipe pengembalian (namanya harus sama). Untuk membedakan antara dua metode yang ditimpa, jenis objek yang tepat yang digunakan untuk memohon metode ID yang digunakan, sedangkan untuk membedakan antara dua metode yang kelebihan beban jenis parameter yang digunakan digunakan. Perbedaan utama lainnya adalah kelebihan beban diselesaikan pada waktu kompilasi, sementara overriding diselesaikan saat runtime.