Overriding vs Overloading
Kaedah Overriding dan kaedah Overloading adalah dua konsep / teknik / ciri yang terdapat dalam beberapa bahasa pengaturcaraan. Kedua-dua konsep tersebut membolehkan pengaturcara memberikan pelaksanaan yang berbeza untuk kaedah dengan nama yang sama. Kaedah penggantian membolehkan pengaturcara menyediakan pelaksanaan alternatif dalam kelas sub kepada kaedah yang sudah ditentukan dalam kelas supernya. Overloading kaedah membolehkan pengaturcara memberikan pelaksanaan yang berbeza kepada pelbagai kaedah dengan nama yang sama (dalam kelas yang sama).
Apa itu Overriding?
Seperti yang disebutkan di atas, kelas dapat memperluas kelas super atau kelas induk, dalam bahasa pengaturcaraan berorientasi objek. Kelas kanak-kanak boleh mempunyai kaedah sendiri atau secara opsional dapat melaksanakannya sendiri dengan kaedah yang sudah ditentukan dalam kelas induknya (atau salah satu kelas induknya). Oleh itu, apabila yang terakhir berlaku, ia disebut kaedah overriding. Dengan kata lain, jika kelas anak memberikan implementasi kepada metode dengan tanda tangan dan jenis pengembalian yang sama dengan kaedah yang sudah ditentukan di salah satu kelas induknya, kaedah itu dikatakan akan diganti (diganti) dengan pelaksanaan kelas anak. Jadi, jika ada kaedah yang diganti dalam kelas, sistem runtime harus memutuskan pelaksanaan kaedah mana yang akan digunakan. Masalah ini diselesaikan dengan melihat jenis objek yang tepat yang digunakan untuk memanggilnya. Sekiranya objek kelas induk digunakan untuk menggunakan kaedah overridden, maka pelaksanaan dalam kelas induk digunakan. Begitu juga, jika ia adalah objek kelas kanak-kanak yang digunakan, maka pelaksanaan kelas kanak-kanak digunakan. Bahasa pengaturcaraan moden seperti Java, Eifell, C ++ dan Python membolehkan kaedah diganti.
Apa itu Overloading?
Overloading kaedah adalah ciri yang disediakan oleh beberapa bahasa pengaturcaraan untuk membuat lebih dari satu kaedah dengan nama yang sama, tetapi dengan jenis input dan output yang berbeza. Dalam bahasa pengaturcaraan moden seperti Java, C #, C ++ dan VB. NET, ciri ini tersedia. Anda boleh memuatkan kaedah dengan membuat kaedah lain dengan nama yang sama tetapi dengan tandatangan kaedah yang berbeza atau jenis pengembalian yang berbeza (atau kedua-duanya). Sebagai contoh, jika anda mempunyai kaedah1 (type1 t1) dan kaedah1 (type2 t2) di dalam kelas yang sama, maka mereka akan berlebihan. Maka sistem harus memutuskan mana yang akan dilaksanakan ketika dipanggil. Pembezaan ini dibuat dengan melihat jenis parameter yang diteruskan ke kaedah tersebut. Sekiranya argumen adalah tipe1, maka implementasi pertama disebut, sedangkan jika tipe 2, maka implementasi kedua disebut.
Apakah perbezaan antara Overriding dan Overloading?
Walaupun, kaedah overriding dan kaedah overloading digunakan untuk menyediakan metode dengan implementasi yang berbeza, ada perbezaan utama antara kedua konsep / teknik ini. Pertama sekali, subjek kaedah overriding selalu berada dalam kelas yang berbeza, sementara subjek kaedah overloading berada dalam kelas yang sama. Itu bermakna penggantian hanya dapat dilakukan dalam bahasa pengaturcaraan berorientasi objek yang memungkinkan pewarisan, sementara kelebihan beban juga tersedia dalam bahasa yang tidak berorientasi objek. Dengan kata lain, anda mengatasi kaedah di kelas super tetapi anda membebani kaedah dalam kelas anda sendiri.
Perbezaan lain adalah bahawa kaedah yang diganti mempunyai nama kaedah yang sama, tanda tangan kaedah dan jenis pengembalian, tetapi kaedah yang berlebihan mesti berbeza sama ada pada tandatangan atau jenis pengembalian (namanya harus sama). Untuk membezakan antara dua kaedah yang diganti, jenis objek yang tepat digunakan untuk menggunakan kaedah id yang digunakan, sedangkan untuk membezakan antara dua kaedah yang berlebihan jenis parameter yang digunakan. Perbezaan utama yang lain adalah bahawa kelebihan beban diselesaikan pada waktu kompilasi, sementara overriding diselesaikan pada waktu berjalan.