Perbezaan Antara Overriding Dan Overloading Di C

Isi kandungan:

Perbezaan Antara Overriding Dan Overloading Di C
Perbezaan Antara Overriding Dan Overloading Di C

Video: Perbezaan Antara Overriding Dan Overloading Di C

Video: Perbezaan Antara Overriding Dan Overloading Di C
Video: Урок Java 384: Best practice 20: Почему нужно использовать @Override 2024, April
Anonim

Perbezaan Utama - Overriding vs Overloading dalam C #

Perbezaan utama antara overriding dan overloading dalam C # adalah bahawa pengikatan panggilan kaedah overridden ke definisinya berlaku pada waktu runtime sementara pengikatan panggilan kaedah overloaded ke definisinya berlaku pada waktu kompilasi.

C # adalah bahasa pengaturcaraan tujuan umum yang dikembangkan oleh Microsoft. Kelebihan utama C # adalah ia menyokong Pengaturcaraan Berorientasikan Objek (OOP). Salah satu tonggak OOP adalah 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 di C #.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama

2. Apa yang Melebihi di C #

3. Apa yang Berlebihan di C #

4. Persamaan Antara Overriding dan Overloading di C #

5. Perbandingan Berdampingan - Overriding vs Overloading di C # dalam Jadual

6. Ringkasan

Apa yang Menimpa dalam C #?

Terdapat satu lagi konsep penting dalam OOP adalah pewarisan. Ia menggunakan atribut dan kaedah kelas yang sudah ada. Ia meningkatkan kebolehgunaan semula kod. Kelas yang sudah ada adalah kelas asas, dan kelas baru dikenali sebagai kelas turunan. Dalam mengatasi polimorfisme, semestinya ada kelas asas dan kelas turunan. Pengikatan panggilan kaedah yang diganti dengan definisi berlaku pada waktu runtime. Contohnya adalah seperti berikut.

Perbezaan Antara Overriding dan Overloading di C #
Perbezaan Antara Overriding dan Overloading di C #

Gambar 01: C # Program dengan Overriding

Menurut program di atas, kelas Shape adalah kelas dasar, dan ia mengandungi kaedah paparan. Kelas Segi Empat dan Segi Tiga adalah kelas turunan. Kelas turunan ini juga mempunyai paparan kaedah yang sama dengan pelaksanaannya sendiri.

Pertama, pemboleh ubah rujukan obj dibuat. Ia menunjuk ke objek Shape. Jadi, kaedah paparan kelas Shape akan dijalankan. Kemudian, pemboleh ubah rujukan menunjuk ke objek Rectangle. Jadi, kaedah paparan kelas Rectangle akan dijalankan. Akhirnya, pemboleh ubah rujukan menunjuk ke objek Segitiga. Jadi, kaedah paparan kelas Segitiga akan dijalankan. Kaedah paparan kelas asas diganti dengan kaedah paparan kelas turunan.

Kaedah untuk dijalankan diputuskan pada waktu runtime. Kelas Shape ditulis dengan kata kunci 'maya'. Kelas Segi Empat dan Segi Tiga ditulis dengan kata kunci 'ganti'. Sekiranya kata kunci ini tidak digunakan, output akan mencetak kandungan kaedah paparan kelas Bentuk untuk semua.

Apa itu Overloading di C #?

Dalam beban berlebihan, pelbagai kaedah mempunyai nama yang sama tetapi dengan parameter yang berbeza. Parameternya boleh terdiri daripada pelbagai jenis. Kaedah juga boleh mempunyai bilangan parameter yang berbeza. Kaedah overloading berlaku di kelas yang sama. Pengikatan kaedah yang terlalu banyak dengan definisi berlaku pada masa penyusunan. Rujuk program C # di bawah.

Perbezaan Utama Antara Overriding dan Overloading di C #
Perbezaan Utama Antara Overriding dan Overloading di C #

Gambar 02: Program C # dengan Overloading

Menurut program di atas, kelas A mempunyai dua kaedah dengan nama yang sama disebut jumlah. Mereka mempunyai pelbagai jenis parameter. Dalam program utama, objek A dibuat. Jumlah (2,3) akan menggunakan kaedah penjumlahan dengan bilangan bulat. Jumlahnya (5.1, 7.94) akan menggunakan kaedah penjumlahan dengan nilai berganda. Kedua-dua kaedah mempunyai nama yang sama dan bilangan parameter yang sama. Tetapi jenis parameternya berbeza. Kaedah yang diperlukan dipanggil dengan sewajarnya. Overloading juga dapat terjadi jika nama metode dan jenis parameternya sama tetapi jumlah parameternya berbeza.

Apakah Kesamaan Antara Overriding dan Overloading di C #?

Kedua-dua Overriding dan Overloading dalam C # adalah jenis polimorfisme

Apakah Perbezaan Antara Overriding dan Overloading di C #?

Artikel Diff Tengah sebelum Jadual

Overriding vs Overloading dalam C #

Overriding dalam C # adalah untuk menyediakan pelaksanaan khusus dalam kaedah kelas turutan untuk kaedah yang sudah ada di kelas dasar. Overloading dalam C # adalah untuk membuat pelbagai kaedah dengan nama yang sama dengan pelaksanaan yang berbeza.
Parameter
Dalam C # Overriding, kaedahnya mempunyai nama yang sama, jenis parameter yang sama dan jumlah parameter yang sama. Dalam C # Overloading, metode memiliki nama yang sama tetapi jumlah parameter yang berbeza atau jenis parameter yang berbeza.
Kejadian
Dalam C #, penggantian berlaku dalam kelas asas dan kelas turunan. Dalam C #, beban berlebihan berlaku dalam kelas yang sama.
Masa Mengikat
Pengikatan panggilan kaedah yang diganti dengan definisi berlaku pada waktu runtime. Pengikatan panggilan kaedah yang terlalu banyak untuk definisinya berlaku pada waktu kompilasi.
Sinonim
Overriding disebut sebagai polimorfisme runtime, polimorfisme dinamik atau pengikatan lewat. Overloading disebut sebagai kompilasi polimorfisme masa, polimorfisme statik atau pengikatan awal.

Ringkasan - Overriding vs Overloading dalam C #

Overriding dan Overloading adalah dua jenis polimorfisme. Perbezaan antara overriding dan overloading dalam C # adalah bahawa pengikatan panggilan kaedah overridden ke definisinya berlaku pada waktu runtime sementara pengikatan panggilan kaedah overloaded ke definisinya berlaku pada waktu kompilasi.

Disyorkan: