Dalam C#, terdapat dua mekanisme untuk mentakrifkan semula atau menyediakan pelaksanaan baharu kaedah kelas induk melalui subkelas, kedua-dua mekanisme ini dipanggil method overriding dan method hiding. Sekarang berdasarkan cara kaedah itu dilaksanakan semula, kita boleh membezakannya.
Berikut ialah perbezaan penting antara kaedah mengatasi dan menyembunyikan kaedah. Nombor siri kelas induk dan subkelas Mempunyai kaedah yang sama, termasuk parameter dan tandatangan, dan apabila ia dipanggil menggunakan objek subkelas, pelaksanaan dalam subkelas dipanggil.
2 | Akses pelaksanaan kelas induk | Dalam mengatasi kaedah, subkelas boleh mengakses pelaksanaan kaedah kelas induk. | Dalam penyembunyian kaedah, pelaksanaan kaedah kelas induk tidak boleh diakses melalui rujukan subkelas. |
---|---|---|---|
Penggunaan pengubah suai | Dalam mengatasi kaedah, gunakan kata kunci ganti. | Dalam penyembunyian kaedah, gunakan kata kunci baharu untuk menentukan pelaksanaan baharu dalam subkelas. | |
Jenis pelaksanaan | Dalam mengatasi kaedah, jenis pelaksanaan kaedah ialah jenis objek. | Walau bagaimanapun, dalam penyembunyian kaedah, jenis pelaksanaan kaedah adalah jenis rujukan. | |
Rujukan dari kelas induk ke kelas anak | Dalam mengatasi kaedah, apabila pembolehubah rujukan kelas induk menghala ke objek kelas anak, ia akan memanggil kaedah yang diganti dalam kelas anak. | Sebaliknya, dalam kaedah menyembunyikan, apabila pembolehubah rujukan kelas induk menghala ke objek kelas anak, ia akan memanggil kaedah tersembunyi dalam kelas induk. | |
Tujuan | Penggantian kaedah hanya mentakrifkan semula pelaksanaan kaedah. | Kaedah menyembunyikan boleh mentakrifkan semula kaedah sepenuhnya. | |
Atas ialah kandungan terperinci Perbezaan antara kaedah mengatasi dan kaedah menyembunyikan dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!