Rumah >pembangunan bahagian belakang >C++ >Mengapa Menggunakan Pelaksanaan Antara Muka Eksplisit untuk Mengendalikan Nama Kaedah Bercanggah?
Mengapa Pelaksanaan Antara Muka Eksplisit?
Apabila berurusan dengan berbilang antara muka yang mentakrifkan kaedah yang sama, pelaksanaan antara muka eksplisit memastikan pengkompil memilih yang betul pelaksanaan. Pertimbangkan senario di mana antara muka IDoItFast dan IDoItSlow kedua-duanya mentakrifkan kaedah Go().
Untuk mengelakkan kekaburan apabila kelas melaksanakan kedua-dua antara muka, pelaksanaan eksplisit diperlukan. Dalam contoh di bawah:
public interface IDoItFast { void Go(); } public interface IDoItSlow { void Go(); } public class JustDoIt : IDoItFast, IDoItSlow { void IDoItFast.Go() { } void IDoItSlow.Go() { } }
Dengan melaksanakan Go() secara eksplisit untuk setiap antara muka, kelas JustDoIt boleh menyediakan pelaksanaan berasingan untuk setiap kaedah Go(). Ini menghalang pengkompil daripada memilih satu pelaksanaan untuk kedua-dua antara muka.
Oleh itu, pelaksanaan antara muka yang jelas adalah penting apabila anda ingin menyediakan pelaksanaan yang berbeza untuk kaedah yang sama yang ditakrifkan dalam berbilang antara muka.
Atas ialah kandungan terperinci Mengapa Menggunakan Pelaksanaan Antara Muka Eksplisit untuk Mengendalikan Nama Kaedah Bercanggah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!