Rumah > Java > javaTutorial > Bagaimanakah Java Mengendalikan Perlanggaran Nama Kaedah Apabila Melaksanakan Pelbagai Antara Muka?

Bagaimanakah Java Mengendalikan Perlanggaran Nama Kaedah Apabila Melaksanakan Pelbagai Antara Muka?

Mary-Kate Olsen
Lepaskan: 2024-11-30 19:13:11
asal
651 orang telah melayarinya

How Does Java Handle Method Name Collisions When Implementing Multiple Interfaces?

Pelaksanaan Antara Muka Java dan Perlanggaran Nama Kaedah

Apabila melaksanakan berbilang antara muka dalam Java, mungkin terdapat perlanggaran nama kaedah. Ini berlaku apabila antara muka dengan tujuan berbeza menentukan kaedah dengan tandatangan yang sama. Tidak seperti C# di mana pelaksanaan antara muka eksplisit membenarkan berbilang pelaksanaan kaedah yang sama, Java tidak menyediakan mekanisme yang serupa.

Penalaran untuk Sekatan Java

Java melarang pelbagai pelaksanaan bagi kaedah yang sama untuk mengelakkan kemungkinan kekaburan dan kekeliruan. Ini memastikan bahawa panggilan kaedah sentiasa menggunakan pelaksanaan asas yang sama tanpa mengira antara muka panggilan.

Contoh

Pertimbangkan kod berikut:

interface ISomething {
    void doSomething();
}

interface ISomething2 {
    void doSomething();
}

class Impl implements ISomething, ISomething2 {
   void doSomething() {} // Java only allows one implementation of this method.
}
Salin selepas log masuk

Dalam contoh ini, tiada cara untuk menentukan dua pelaksanaan berasingan kaedah doSomething() dalam kelas Impl untuk setiap antara muka.

Penyelesaian

Jika anda memerlukan tingkah laku yang berbeza berdasarkan antara muka panggilan, pertimbangkan untuk menggunakan pendekatan gubahan dengan mencipta kelas komposit yang mewakilkan kepada kelas individu yang melaksanakan khusus antara muka:

class CompositeClass {
    ISomething class1;
    ISomething2 class2;
    void doSomething1(){class1.doSomething();}
    void doSomething2(){class2.doSomething();}
}
Salin selepas log masuk

Dalam penyelesaian ini, CompositeClass menyediakan fasad untuk melaksanakan kedua-dua antara muka semasa mewakilkan kepada kelas yang berasingan untuk pelaksanaan kaedah tertentu.

Atas ialah kandungan terperinci Bagaimanakah Java Mengendalikan Perlanggaran Nama Kaedah Apabila Melaksanakan Pelbagai Antara Muka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan