Dalam pengaturcaraan yang berorientasikan objek, mekanisme warisan sangat penting dalam pengembangan dan pengubahsuaian. Walau bagaimanapun, terdapat dua mekanisme yang berbeza apabila mengubah kaedah: bersembunyi dan menulis semula.
Tersembunyi: Kaedah melindungi asas
Tersembunyi adalah ahli nama yang sama sebagai ahli yang mewarisi dari kelas asas. Berbeza dengan penulisan semula, kelas yang diperolehi tidak akan mewujudkan hubungan ayah -son. Sebaliknya, ia mewujudkan entiti baru ahli Yayasan Tersembunyi.
Berikut adalah contoh:
Dalam adegan ini, kaedah Sayhello () yang diisytiharkan dalam anjing menyembunyikan kaedah yang diwarisi dari haiwan. Apabila objek anjing memanggil Sayhello (), ia akan melaksanakan kaedah tersembunyi untuk menyekat pelaksanaan kelas asas.
<code class="language-csharp">class Animal { public virtual string SayHello() { return "Hello from Animal"; } } class Dog : Animal { public new string SayHello() { return "Hello from Dog"; } }</code>
Sebaliknya, penulisan semula merujuk kepada kaedah tandatangan yang sama dari warisan negara sub -kelas sebagai warisan kelas induk. Secara lalai, kaedah penulisan semula mewarisi akses kepada pengubah dan jenis pulangan kaedah kelas asas. Walau bagaimanapun, mereka boleh mengubahsuai kesedaran kastam.
Dalam contoh ini, kaedah Sayhello () dalam anjing menulis semula kaedah yang ditakrifkan dalam haiwan. Apabila memanggil objek anjing, kaedah penulisan semula disediakan untuk menyediakan tingkah laku tersuai khusus kepada anjing.Perbezaan utama antara bersembunyi dan menulis semula
<code class="language-csharp">class Animal { public virtual string SayHello() { return "Hello from Animal"; } } class Dog : Animal { public override string SayHello() { return "Hello from Dog"; } }</code>
Kebenaran akses: Akses kepada kaedah kaedah asas untuk menempah kaedah kelas asas, dan yang tersembunyi yang membolehkan kelas yang diperolehi mengubahnya.
Hubungan warisan:Atas ialah kandungan terperinci Shadowing vs. Oviding in C#: Apa perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!