Rumah >Java >javaTutorial >Ralat Pembina Super Tersirat Java: Bagaimana untuk Membetulkan \'Pembina super tersirat... tidak ditentukan untuk pembina lalai\'?

Ralat Pembina Super Tersirat Java: Bagaimana untuk Membetulkan \'Pembina super tersirat... tidak ditentukan untuk pembina lalai\'?

DDD
DDDasal
2024-12-25 12:21:35742semak imbas

Java Implicit Super Constructor Error: How to Fix

Ralat Java: Pembina Super Tersirat Tidak Ditakrifkan untuk Pembina Lalai

S: Ralat Pembina Lalai dengan Subkelas dan Kelas Asas Abstrak

Pemaju Java menghadapi ralat menyatakan "Pembina super tersirat BaseClass() tidak ditentukan untuk pembina lalai." selepas mengalih keluar pembina berlebihan daripada subkelas. Mereka tertanya-tanya sama ada mungkin untuk mengalih keluar pembina sambil masih mematuhi corak kaedah templat.

J: Pembinaan dan Pembina Lalai

Ralat timbul kerana kelas asas ( BaseClass) mengisytiharkan pembina (BaseClass awam(String someString)), melumpuhkan pembina lalai (tanpa hujah). Apabila mengalih keluar pembina daripada subkelas (ACSubClass), pengkompil memasukkan panggilan tersirat kepada pembina tanpa hujah bagi kelas asas (super()) melalui pembina lalai. Memandangkan BaseClass tidak mempunyai pembina tanpa hujah, ini adalah menyalahi undang-undang.

Penyelesaian Kemungkinan:

  1. Alih keluar Pembina daripada BaseClass: Benarkan kelas asas hanya mempunyai pembina lalai, yang mana subkelas boleh mewarisi.
  2. Isytiharkan Pembina Tanpa Argumen dalam BaseClass: Tambahkan pembina tanpa hujah pada kelas asas, sama ada sebagai satu-satunya pembina atau bersama pembina lain.

Walau bagaimanapun, penyelesaian ini mungkin tidak boleh dilaksanakan jika kelas asas memerlukan pembina hujah.

Selain itu, pertimbangkan untuk memfaktorkan semula reka bentuk:

  • Gunakan Kilang untuk Mencipta Kejadian Subkelas: Cipta kelas kilang yang mengendalikan penciptaan subkelas dengan hujah yang diperlukan.
  • Lepaskan Argumen kepada getName() Kaedah: Reka kaedah getName() dengan cara yang membenarkan argumen untuk menyesuaikan nilai nama yang dikembalikan.

Atas ialah kandungan terperinci Ralat Pembina Super Tersirat Java: Bagaimana untuk Membetulkan \'Pembina super tersirat... tidak ditentukan untuk pembina lalai\'?. 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