Memahami Pengecualian Kaedah Statik Abstrak dalam Java
Di Jawa, kaedah abstrak biasanya mentakrifkan kontrak untuk subkelas untuk dilaksanakan. Walau bagaimanapun, konsep "abstrak" bercanggah dengan sifat kaedah "statik".
Kaedah statik terikat kepada kelas itu sendiri, bukannya mana-mana objek tertentu, dan ia dilaksanakan tanpa memerlukan contoh kelas . Fungsi yang wujud ini bercanggah dengan prinsip abstrak, yang membayangkan kekurangan pelaksanaan.
Pertimbangkan contoh berikut:
abstract class foo { abstract void bar( ); // Legal abstract static void bar2(); // Illegal }
Dalam contoh ini, kaedah bar() adalah abstrak, menunjukkan bahawa ia mesti dilaksanakan dalam subkelas. Walau bagaimanapun, kaedah bar2() ditandakan sebagai abstrak dan statik. Gabungan ini tidak dibenarkan kerana:
Memandangkan kaedah abstrak tidak boleh mempunyai kod, ia bercanggah dengan kefungsian yang tersirat oleh kaedah statik. Konflik logik ini menghalang pengisytiharan kaedah statik abstrak dalam Java.
Atas ialah kandungan terperinci Mengapa Kaedah Statik Abstrak Haram di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!