Adakah Antara Muka Mewarisi daripada Kelas Objek dalam Java?
Di Java, antara muka bertindak sebagai pelan tindakan untuk mengisytiharkan tandatangan kaedah dan menyediakan pelaksanaan abstrak. Salah tanggapan biasa ialah sama ada antara muka mewarisi daripada kelas Objek seperti kelas standard.
Tiada Warisan daripada Kelas Objek
Bertentangan dengan kepercayaan popular, antara muka tidak diwarisi secara langsung daripada kelas Objek. Ini bermakna mereka tidak mempunyai akses kepada kaedah seperti equals(), hashCode(), toString(), atau wait() secara lalai.
Memanggil Kaedah Kelas Objek pada Antara Muka
Walaupun tidak mewarisi daripada Object, antara muka masih boleh memanggil kaedah daripada kelas Object. Ini kerana antara muka secara tersirat mengisytiharkan kaedah abstrak awam yang sepadan dengan semua kaedah contoh awam dalam Object, melainkan mereka sudah mewarisi kaedah ini daripada superinterface.
Sebagai contoh, pertimbangkan kod berikut:
<code class="java">interface Employee { } public class Test { public static void main(String[] args) { Employee e = null; e.equals(null); } }</code>
Dalam kod ini, antara muka Pekerja tidak mengisytiharkan kaedah equals() secara eksplisit. Walau bagaimanapun, ungkapan e.equals(null) berjaya dikompilasi kerana kaedah equals() diisytiharkan secara tersirat dalam Pekerja (dan semua antara muka lain) sebagai kaedah abstrak awam.
Sebab bagi Pengisytiharan Antara Muka Tersirat Kaedah Objek
Pengisytiharan tersirat kaedah Objek dalam antara muka membolehkan antara muka berinteraksi dengan lancar dengan ekosistem Java yang lebih luas. Ia membolehkan antara muka memanfaatkan kaedah perpustakaan standard untuk perbandingan objek, pencincangan, perwakilan rentetan dan penyegerakan tanpa mentakrifkan kaedah ini secara eksplisit.
Atas ialah kandungan terperinci Adakah Antara Muka Java Mewarisi daripada Kelas Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!