Warisan Java: Warisan Tunggal vs. Warisan Berbilang
Semasa temu duga kerja, seorang calon ditanya sama ada Java menyokong warisan berbilang. Calon menjawab dengan "Tidak," memetik bahawa setiap kelas dalam Java memanjangkan Objek dan memanjangkan kelas lain seperti "Kelas A melanjutkan Kelas B" bermaksud Kelas A mewarisi daripada kedua-dua Kelas B dan Objek, yang dianggap sebagai warisan berbilang peringkat, bukan warisan berbilang. .
Walau bagaimanapun, penemuduga mencabar jawapan ini, dengan alasan memandangkan Kelas B memanjangkan Objek, melanjutkan Kelas B dalam Kelas A menghasilkan Kelas A yang mewarisi daripada Kelas B dan Objek, pada asasnya membentuk berbilang warisan.
Penjelasan
Jawapan calon sebahagian besarnya betul dalam konteks contoh khusus penemuduga. Warisan berbilang merujuk kepada situasi di mana kelas mewarisi daripada dua atau lebih pangkalan yang tidak berkaitan, mewujudkan struktur "berlian" dalam hierarki warisan.
Warisan Tunggal Java dengan Pelbagai Peringkat
Walau bagaimanapun, di Jawa, pewarisan adalah satu peringkat dengan pelbagai peringkat. Kelas A memanjangkan Kelas B, yang seterusnya memanjangkan Objek. Ini mewujudkan rantaian warisan, tetapi Kelas A hanya mewarisi secara langsung daripada Kelas B dan secara tidak langsung daripada Objek. Ini bukan warisan berbilang.
Antaramuka dan Kaedah "Lalai"
Walaupun Java tidak menyokong warisan berbilang tradisional, ia mempunyai antara muka dan kaedah "lalai" pada antara muka (diperkenalkan dalam Java 8). Ciri ini membenarkan kelas melaksanakan berbilang antara muka dan mewarisi kaedah lalai masing-masing.
Walau bagaimanapun, ini masih bukan warisan berbilang sebenar kerana:
Kesimpulan
Model warisan Java membenarkan warisan tunggal dengan pelbagai peringkat melalui kata kunci "lanjutkan" dan antara muka dengan kaedah lalai menyediakan satu bentuk "cahaya warisan berbilang." Walau bagaimanapun, adalah penting untuk membezakan konsep ini daripada warisan berbilang sebenar, di mana kelas boleh mewarisi daripada berbilang asas yang tidak berkaitan.
Atas ialah kandungan terperinci Adakah Java Menyokong Pelbagai Warisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!