Dalam Java 8 dan seterusnya, kaedah statik adalah dibenarkan dalam antara muka. Ini tidak berlaku dalam versi sebelumnya, menyebabkan ramai pengaturcara tertanya-tanya mengapa.
Java 8 memperkenalkan kaedah antara muka statik bersama-sama override -kaedah contoh boleh dengan pelaksanaan lalai. Antara muka kini boleh termasuk kaedah statik, tetapi masih tidak boleh mempunyai medan contoh.
Kaedah statik tidak boleh ditindih kerana ia diselesaikan pada masa penyusunan . Ini bermakna pengkompil boleh menentukan kelas dan kaedah yang tepat untuk digunakan tanpa merujuk contoh objek. Kaedah penghantaran dinamik sebagai contoh adalah perlu kerana pengkompil tidak dapat menentukan jenis tepat objek pada masa jalan.
Berbeza dengan kaedah contoh, kaedah statik dikaitkan secara langsung dengan kelas. Ini menghapuskan keperluan untuk penghantaran dinamik, kerana pengkompil sudah mengetahui kelas dan kaedah yang diperlukan. Oleh itu, mengatasi kaedah statik adalah tidak perlu dan tidak praktikal.
Menguatkuasakan kaedah kilang mandatori untuk pelaksanaan IXMLizable boleh dicapai tanpa menggunakan antara muka . Kod yang menggunakan kaedah kilang boleh menentukan jenis konkrit secara eksplisit, membenarkan pengkompil mengesahkan pematuhan.
Jika pelaksanaan IXMLizable tanpa "pembina" dicipta dan dihantar kepada kod yang mengharapkannya, kod itu masih mengakuinya sebagai IXMLizable yang sah. Ini kerana pembinaan adalah perincian pelaksanaan, bukan sebahagian daripada antara muka. Mana-mana kod yang berinteraksi dengan antara muka sahaja kekal tidak terjejas.
Atas ialah kandungan terperinci Mengapa Kaedah Statik Tidak Dibenarkan dalam Antara Muka Java Sebelum Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!