Ini kerana tandatangan kaedah statik dan kaedah contoh tidak boleh sama, kerana Java membenarkan memanggil kaedah statik kelas pada objek contoh. Ini kerana kebenaran ini tidak boleh ada kaedah dengan tandatangan yang sama.
public class Test {
// public void main(String[] args) {} // Error
public static void main(String[] args) {
Test.hello(); // OK
new Test().hello(); // OK
}
public static void hello() {
System.out.println("hi");
}
}
Jvm pada pendapat anda siapa yang patut dilaksanakan? Walaupun semuanya kaedah biasa, mereka tidak boleh mempunyai nama yang sama dan parameter yang sama Jvm akan menjadi bodoh
Kedua-dua kaedah statik dan abstrak ditakrifkan oleh kelas Memandangkan kesemuanya ditakrifkan oleh kelas, ia mestilah tidak mempunyai nama yang sama dan parameter yang sama.
Ini kerana tandatangan kaedah statik dan kaedah contoh tidak boleh sama, kerana Java membenarkan memanggil kaedah statik kelas pada objek contoh. Ini kerana kebenaran ini tidak boleh ada kaedah dengan tandatangan yang sama.
Jvm pada pendapat anda siapa yang patut dilaksanakan?
Walaupun semuanya kaedah biasa, mereka tidak boleh mempunyai nama yang sama dan parameter yang sama Jvm akan menjadi bodoh
Tandatangan kaedah: Keunikan kaedah ditentukan oleh nama kaedah dan jenis data parameter
Nama kaedah dan parameter kedua-dua kaedah di atas adalah konsisten, mengakibatkan ralat semasa proses penyusunan
Ini berkaitan dengan ciri ikatan dinamik Java
Kedua-dua kaedah statik dan abstrak ditakrifkan oleh kelas Memandangkan kesemuanya ditakrifkan oleh kelas, ia mestilah tidak mempunyai nama yang sama dan parameter yang sama.
Lebih muatan dan menulis semula dalam Java tidak membenarkan peraturan sedemikian.