Java: Menangani Perlanggaran Nama Kaedah dalam Pelaksanaan Antara Muka
Di Java, melaksanakan berbilang antara muka yang mentakrifkan kaedah dengan tandatangan yang sama boleh menimbulkan cabaran jika kelas pelaksana memerlukan pelaksanaan yang berbeza untuk setiap kaedah. Tidak seperti pelaksanaan antara muka eksplisit C#, Java tidak mempunyai fleksibiliti ini.
Sebab Sekatan Java:
Java melarang pelbagai pelaksanaan kaedah yang sama dalam satu kelas untuk mengelakkan kekeliruan dan kemungkinan ralat masa jalan. Menguatkuasakan satu pelaksanaan memastikan kejelasan dan menghalang kekaburan apabila menggunakan kaedah.
Penyelesaian:
Untuk mengatasi had ini, Java mencadangkan untuk mengarang kelas daripada dua kelas berasingan yang setiap satunya melaksanakan antara muka yang berbeza. Kelas komposit ini kemudiannya boleh menyediakan kefungsian kedua-dua antara muka tanpa perlanggaran nama kaedah.
Sebagai contoh:
interface ISomething { void doSomething(); } interface ISomething2 { void doSomething(); } class Class1 implements ISomething { void doSomething() { ... } } class Class2 implements ISomething2 { void doSomething() { ... } } class CompositeClass { Class1 class1 = new Class1(); Class2 class2 = new Class2(); void doSomething1() { class1.doSomething(); } void doSomething2() { class2.doSomething(); } }
Dengan menggunakan penyelesaian ini, satu kelas boleh mempamerkan gelagat berbilang antara muka, sambil mematuhi sekatan Java pada perlanggaran nama kaedah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Perlanggaran Nama Kaedah Apabila Melaksanakan Pelbagai Antara Muka di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!