Rumah >Java >javaTutorial >Mengapa Java Mengehadkan Melebihkan Kaedah dengan Kaedah Setara Override?
Pembebanan Kaedah: Sekatan Java pada Kaedah Override-Equivalent
Java melarang kehadiran dua kaedah dalam kelas dengan pemadaman yang sama walaupun parameter berbeza jenis. Kekangan ini berpunca daripada usaha bahasa untuk mengekalkan keserasian dengan kod warisan yang menggunakan jenis mentah.
Ralat kompilasi timbul apabila dua kaedah dengan jenis parameter yang berbeza-beza, seperti add(Set Sekatan ini wujud untuk mengelakkan konflik dalam situasi di mana kelas mewarisi daripada superclass menggunakan mentah jenis. Dalam kes sedemikian, pengkompil mesti menganggap jenis mentah sebagai menimpa-setara dengan jenis yang dijana untuk memastikan kaedah mengatasi yang betul. Contohnya, pertimbangkan penukar Koleksi kelas warisan dengan kaedah toList(Collection c) menggunakan jenis mentah. Jika anda melanjutkan kelas ini dan menambah kaedah baharu keList(Collection Namun, jika anda tersilap menambah kaedah ketiga keList( Pengumpulan c) kepada subkelas, pengkompil menghadapi kekaburan kerana ia tidak dapat menentukan kaedah yang hendak ditindih. Untuk menyelesaikan kekaburan ini, Java menguatkuasakan peraturan terhadap berbilang kaedah setara override. Adalah penting untuk ambil perhatian bahawa sekatan ini bukan pengehadan pemadaman tetapi pilihan reka bentuk yang dibuat untuk menyokong keserasian dengan kod sedia ada. Dengan generik ditambahkan pada pengecam kaedah, memastikan keunikan akan dapat dicapai pada masa penyusunan tanpa memerlukan peraturan ini. Namun begitu, Java mengekalkan sekatan ini demi keserasian. Atas ialah kandungan terperinci Mengapa Java Mengehadkan Melebihkan Kaedah dengan Kaedah Setara Override?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!