Perbezaan Utama – Mengatasi vs Lebihan dalam C
Perbezaan utama antara overriding dan overloading dalam C ialah pengikatan panggilan kaedah yang ditindih kepada definisinya berlaku pada masa jalan manakala pengikatan panggilan kaedah terlebih beban kepada definisinya berlaku pada masa penyusunan.
C ialah bahasa pengaturcaraan tujuan umum yang dibangunkan oleh Microsoft. Kelebihan utama C ialah ia menyokong Pengaturcaraan Berorientasikan Objek (OOP). Satu tiang OOP ialah Polimorfisme. Ia memberikan objek untuk mempunyai pelbagai tingkah laku. Terdapat dua jenis dalam Polimorfisme yang dikenali sebagai overriding dan overloading. Artikel ini membincangkan perbezaan antara kaedah overriding dan overloading dalam C.
Apakah yang Mengatasi dalam C?
Terdapat satu lagi konsep penting dalam OOP ialah pewarisan. Ia adalah untuk menggunakan atribut dan kaedah kelas yang sedia ada. Ia meningkatkan kebolehgunaan semula kod. Kelas yang sedia ada ialah kelas asas, dan kelas baharu dikenali sebagai kelas terbitan. Dalam mengatasi polimorfisme, perlu ada kelas asas dan kelas terbitan. Pengikatan panggilan kaedah yang diganti kepada definisi berlaku pada masa jalan. Contohnya adalah seperti berikut.
Rajah 01: Program C dengan Overriding
Menurut program di atas, kelas Shape ialah kelas asas dan ia mengandungi kaedah paparan. Class Rectangle dan Triangle ialah kelas terbitan. Kelas terbitan ini juga mempunyai paparan kaedah yang sama dengan pelaksanaannya sendiri.
Pertama, obj pembolehubah rujukan dibuat. Ia menunjuk ke objek Shape. Jadi, kaedah paparan kelas Shape akan dilaksanakan. Kemudian, pembolehubah rujukan menghala ke objek Rectangle. Jadi, kaedah paparan kelas Rectangle akan dilaksanakan. Akhir sekali, pembolehubah rujukan menunjuk kepada objek Segitiga. Jadi, kaedah paparan kelas Triangle akan dilaksanakan. Kaedah paparan kelas asas ditindih oleh kaedah paparan kelas terbitan.
Kaedah untuk dijalankan ditentukan pada masa jalanan. Kelas Shape ditulis dengan kata kunci 'maya'. Kelas Rectangle dan Triangle ditulis dengan kata kunci 'override'. Jika kata kunci ini tidak digunakan, output akan mencetak kandungan kaedah paparan kelas Bentuk untuk semua.
Apakah Lebihan Pemuatan dalam C?
Dalam lebihan muatan, berbilang kaedah mempunyai nama yang sama tetapi dengan parameter yang berbeza. Parameter boleh terdiri daripada pelbagai jenis. Kaedah juga boleh mempunyai bilangan parameter yang berbeza. Kelebihan kaedah berlaku dalam kelas yang sama. Pengikatan kaedah terlebih beban kepada definisi berlaku pada masa penyusunan. Rujuk program C di bawah.
Rajah 02: Program C dengan Lebihan
Mengikut program di atas, kelas A mempunyai dua kaedah dengan nama yang sama dipanggil jumlah. Mereka mempunyai pelbagai jenis parameter. Dalam program utama, objek A dicipta. Jumlah (2, 3) akan menggunakan kaedah jumlah dengan integer. Jumlah (5.1, 7.94) akan menggunakan kaedah jumlah dengan nilai berganda. Kedua-dua kaedah mempunyai nama yang sama dan bilangan parameter yang sama. Tetapi jenis parameter berbeza. Kaedah yang diperlukan dipanggil sewajarnya. Lebihan beban juga boleh berlaku jika nama kaedah dan jenis parameter adalah sama tetapi bilangan parameter berbeza.
Apakah Persamaan Antara Overriding dan Overloading dalam C?
Kedua-dua Overriding dan Overloading dalam C ialah jenis polimorfisme
Apakah Perbezaan Antara Overriding dan Overloading dalam C?
Overriding vs Overloading dalam C |
|
Timpa dalam C adalah untuk menyediakan pelaksanaan khusus dalam kaedah kelas terbitan untuk kaedah yang sudah sedia ada dalam kelas asas. | Pemuatan berlebihan dalam C adalah untuk mencipta berbilang kaedah dengan nama yang sama dengan pelaksanaan yang berbeza. |
Parameter | |
Dalam C Overriding, kaedah mempunyai nama yang sama, jenis parameter yang sama dan bilangan parameter yang sama. | Dalam C Overloading, kaedah mempunyai nama yang sama tetapi bilangan parameter yang berbeza atau jenis parameter yang berbeza. |
Kejadian | |
Dalam C, overriding berlaku dalam kelas asas dan kelas terbitan. | Dalam C, lebihan beban berlaku dalam kelas yang sama. |
Masa Mengikat | |
Pengikatan panggilan kaedah yang diganti kepada definisinya berlaku pada masa jalan. | Pengikatan panggilan kaedah terlebih beban kepada definisinya berlaku pada masa penyusunan. |
Sinonim | |
Overriding dipanggil sebagai polimorfisme masa jalan, polimorfisme dinamik atau pengikatan lewat. | Pemuatan berlebihan dipanggil sebagai polimorfisme masa kompilasi, polimorfisme statik atau pengikatan awal. |
Ringkasan – Overriding vs Overloading dalam C
Overriding dan Overloading ialah dua jenis polimorfisme. Perbezaan antara overriding dan overloading dalam C ialah pengikatan panggilan kaedah yang ditindih kepada definisinya berlaku pada masa jalan manakala pengikatan panggilan kaedah terlebih beban kepada definisinya berlaku pada masa penyusunan.