Rumah >pembangunan bahagian belakang >C++ >Apakah perbezaan antara kata kunci `new` dan` override` dalam warisan kaedah?
dalam pemahaman mengenai kata kunci "baru" dan "override"
Dalam pengaturcaraan yang berorientasikan objek, warisan adalah konsep teras, yang membolehkan derivatif mengembangkan dan mengubah suai tingkah laku kelas asas. Apabila menentukan kelas ini, pemaju mungkin perlu menulis semula atau membuat pelaksanaan baru. Untuk menjelaskan perbezaan ini, mari kita periksa adegan berikut:
adegan 1: kelas asas
Tatabahasa ini mengisytiharkan kaedah maya dalam kelas asas. Kaedah maya boleh ditulis semula dalam kategori derivatif untuk menyediakan pelaksanaan tertentu.
<code class="language-c#">public virtual void DoIt();</code>adegan 1: kelas bahagian
Dalam kaedah yang diperoleh, penggunaan "baru" akan mewujudkan kaedah baru dan bebas, dan namanya sama dengan kaedah dalam kelas asas. Walau bagaimanapun, ini tidak dianggap ditulis semula, dan apabila kelas asas dipanggil, tingkah laku kaedah kelas asas tidak akan menjejaskan tingkah laku kelas asas.
adegan 2: kelas asas<code class="language-c#">public new void DoIt();</code>
Ini adalah kaedah bukan futant dan tidak boleh ditulis semula dalam kelas yang diperolehi. Derivatif mesti menggunakan pengubah "baru" untuk mencapai kaedah baru dengan nama yang sama. adegan 2: kelas bahagian
<code class="language-c#">public void DoIt();</code>
"Mengatasi" pengubahsuaian menunjukkan bahawa kaedah dalam kelas derivatif menulis semula kaedah lain tandatangan yang sama di kelas asas. Apabila memanggil dipanggil oleh kelas asas, kaedah penulisan semula akan dilaksanakan.
perbezaan sebenar
<code class="language-c#">public override void DoIt();</code>
Dalam contoh ini, "derived.doit ()" ditulis semula "base.doit ()", dan apabila kaedah "b" pembolehubah "DOIT ()" dipanggil dari objek "b" pembolehubah "yang diperolehi" akan dipanggil untuk memanggilnya.
Atas ialah kandungan terperinci Apakah perbezaan antara kata kunci `new` dan` override` dalam warisan kaedah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!