Perbezaan Antara Penggantian dan Kelebihan Beban dalam C #

Perbezaan Utama - Mengatasi vs Overloading dalam C #
 

The perbezaan utama antara overriding dan overloading dalam C # ialah pengikatan kaedah panggilan yang ditindih kepada takrifnya berlaku semasa runtime sementara pengikatan kaedah overloaded panggilan untuk takrifnya berlaku pada masa penyusunan.

C # adalah bahasa pengaturcaraan umum yang dibangunkan oleh Microsoft. Kelebihan utama C # ialah ia menyokong Pemrograman Berorientasikan Objek (OOP). Satu tiang OOP ialah Polimorfisme. Ia memberikan objek untuk mempunyai pelbagai tingkah laku. Terdapat dua jenis dalam Polymorphism yang dikenali sebagai overriding dan overloading. Artikel ini membincangkan perbezaan antara kaedah mengatasi dan overloading dalam C #.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apa yang Mengatasi di C #
3. Apakah Kelebihan dalam C #
4. Kesamaan Antara Mengatasi dan Kelebihan Beban dalam C #
5. Perbandingan Side by Side - Overriding vs Overloading dalam C # dalam Borang Tabular
6. Ringkasan

Apa yang Mengatasi C #?

Terdapat satu lagi konsep penting dalam OOP adalah warisan. Ia adalah untuk menggunakan atribut dan kaedah kelas yang sedia ada. Ia meningkatkan kebolehterimaan kod. Kelas yang sudah ada adalah kelas asas, dan kelas baru dikenali sebagai kelas yang diturunkan. Dalam mengatasi polimorfisme, mesti ada kelas asas dan kelas yang diturunkan. Pengikatan kaedah panggilan yang ditindih kepada takrif berlaku pada masa runtime. Contohnya adalah seperti berikut.

Rajah 01: Program C # dengan Overriding

Menurut program di atas, Shape kelas adalah kelas asas, dan ia mengandungi kaedah paparan. Kelas Rectangle dan Triangle adalah kelas yang diturunkan. Kelas-kelas yang diturunkan ini juga mempunyai paparan kaedah yang sama dengan pelaksanaannya sendiri.

Pertama, objek pembolehubah rujukan dibuat. Ia menunjukkan objek Shape. Jadi, kaedah paparan kelas Bentuk akan dilaksanakan. Kemudian, pembolehubah rujukan menunjukkan objek Rectangle. Jadi, kaedah paparan kelas Rectangle akan dilaksanakan. Akhirnya, pembolehubah rujukan menunjuk kepada objek Segitiga. Jadi, kaedah paparan kelas Segitiga akan dilaksanakan. Kaedah paparan kelas asas diganti dengan kaedah paparan kelas yang diturunkan.

Kaedah untuk dijalankan diputuskan semasa proses runtime. Kelas Bentuk ditulis dengan kata kunci 'maya'. Kelas Rectangle dan Triangle ditulis dengan kata kunci 'menimpa'. Jika kata kunci ini tidak digunakan, output akan mencetak kandungan kaedah paparan kelas Bentuk untuk semua.

Apa yang Berlebihan di C #?

Dalam muatan lebihan, pelbagai kaedah mempunyai nama yang sama tetapi mempunyai parameter yang berbeza. Parameter boleh menjadi jenis yang berbeza. Kaedah juga boleh mempunyai bilangan parameter yang berbeza. Kaedah muatan beban berlaku dalam kelas yang sama. Pengikatan kaedah yang berlebihan kepada definisi yang berlaku pada masa penyusunan. Rujuk program C # di bawah.

Rajah 02: Program C # dengan Overloading

Menurut 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 bilangan bulat. 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 adalah berbeza. Kaedah yang diperlukan dipanggil dengan sewajarnya. Overloading juga boleh berlaku jika nama kaedah dan jenis parameter adalah sama tetapi bilangan parameter adalah berbeza.

Apakah Kesamaan Antara Mengatasi dan Kelebihan Beban dalam C #?

  • Kedua-dua Pengeculan dan Overloading dalam C # adalah jenis polimorfisme.

Apakah Perbezaan Antara Mengatasi dan Muatan Semula di C #?

Overriding vs Overloading in C #

Peningkatan dalam C # adalah untuk menyediakan pelaksanaan tertentu dalam kaedah kelas yang diperolehi untuk kaedah yang sudah ada di kelas asas. Overloading dalam C # adalah untuk membuat pelbagai 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 beberapa parameter atau parameter yang berbeza.
Kejadian
Dalam C #, override berlaku dalam kelas asas dan kelas yang diturunkan. Dalam C #, overloading berlaku dalam kelas yang sama.
 Masa Mengikat
Pengikatan kaedah panggilan yang ditindih kepada takrifnya berlaku pada masa runtime. Pengikatan panggilan kaedah yang berlebihan kepada takrifnya berlaku pada masa penyusunan.
Sinonim
Terutama dipanggil sebagai polimorfisme runtime, polimorfisme dinamik atau mengikat lewat. Limpahan dipanggil sebagai menyusun masa polimorfisme, polimorfisme statik atau mengikat awal.

Ringkasan - Mengatasi vs Overloading dalam C #

Overriding and Overloading adalah dua jenis polimorfisme. Perbezaan antara overriding dan overloading dalam C # ialah pengikatan kaedah panggilan yang ditindih kepada takrifnya yang berlaku pada masa runtuh sementara pengikatan panggilan overloaded call kepada takrifnya berlaku pada masa penyusunan.

Rujukan:

1.Kumar, Mukesh. C # Corner. Terdapat di sini
2.tutorialspoint.com. "C # Polymorphism." TutorialsPointTerdapat di sini
3.tutorialspoint.com. "Jenis Data # C #." TutorialsPoint, Boleh didapati di sini