Setakat Java 8, antara muka kini menyokong kaedah statik. Selain itu, mereka boleh mempunyai kaedah contoh konkrit tetapi bukan medan contoh.
Dalam versi Java terdahulu, antara muka tidak boleh mengandungi kaedah statik kerana sebab berikut:
Kaedah statik tidak boleh ditindih kerana ia diselesaikan pada masa penyusunan. Penghantaran dinamik digunakan sebagai contoh kaedah apabila pengkompil tidak dapat menentukan jenis konkrit objek dan dengan itu tidak dapat menyelesaikan kaedah untuk digunakan. Walau bagaimanapun, memandangkan kaedah statik memerlukan kelas yang diketahui, ia boleh diselesaikan secara statik, menjadikan penghantaran dinamik tidak diperlukan.
Dengan kata lain, jika kedua-dua superclass dan subclass mempunyai kaedah statik dengan tandatangan yang sama, kaedah subclass akan sentiasa dipanggil dahulu, mengatasi kaedah superclass. Walau bagaimanapun, ini berlebihan secara konsep kerana seseorang sentiasa boleh menentukan kelas yang mengandungi versi kaedah statik yang diingini.
Mengenai kebimbangan tambahan anda tentang menguatkuasakan kaedah seperti pembina untuk IXMLizable, pertimbangkan perkara berikut:
Atas ialah kandungan terperinci Mengapa Antara Muka Java Tidak Boleh Mempunyai Kaedah Statik Sebelum Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!