Rumah >Java >javaTutorial >Mengapa Kaedah Statik Tidak Dibenarkan dalam Antara Muka Pra-Java 8, dan Mengapa Ia Tidak Boleh Ditindih?

Mengapa Kaedah Statik Tidak Dibenarkan dalam Antara Muka Pra-Java 8, dan Mengapa Ia Tidak Boleh Ditindih?

Linda Hamilton
Linda Hamiltonasal
2024-12-24 08:33:42556semak imbas

Why Aren't Static Methods Allowed in Pre-Java 8 Interfaces, and Why Can't They Be Overridden?

Mengapa saya tidak boleh mentakrifkan kaedah statik dalam antara muka Java?

Antaramuka dalam Java, seperti yang ditakrifkan dalam versi terdahulu, tidak membenarkan kemasukan kaedah statik. Ini telah berubah sejak itu dalam Java 8, di mana kaedah statik kini dibenarkan. Walau bagaimanapun, satu persoalan kekal: mengapakah kaedah statik tidak dibenarkan dalam antara muka pada mulanya, dan mengapa kaedah statik tidak boleh ditindih?

Penghadan teknikal

Tiada sebab teknikal yang besar menghalang kaedah statik dalam antara muka dalam versi Java yang lebih awal. Ia hanyalah keputusan reka bentuk oleh pencipta bahasa. Keputusan ini kemudiannya disemak semula, membawa kepada pengenalan kaedah antara muka statik dalam Java 8.

Mengatasi kaedah statik

Sebab mengapa kaedah statik tidak boleh ditindih ialah berakar umbi dalam mekanik cara panggilan kaedah diselesaikan. Kaedah statik diselesaikan pada masa penyusunan, kerana ia dikaitkan dengan kelas tertentu. Sebaliknya, kaedah contoh dihantar secara dinamik berdasarkan jenis objek, yang hanya diketahui pada masa jalan.

Dalam kes kaedah statik, memandangkan kelas diketahui pada masa penyusunan, tidak ada keperluan untuk penghantaran dinamik . Oleh itu, konsep overriding tidak digunakan untuk kaedah statik.

Atas ialah kandungan terperinci Mengapa Kaedah Statik Tidak Dibenarkan dalam Antara Muka Pra-Java 8, dan Mengapa Ia Tidak Boleh Ditindih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn