Bolehkah kelas abstrak mempunyai pembina?
Ya, kelas abstrak boleh mempunyai pembina. Pembina dalam kelas abstrak membenarkan pemulaan medan biasa dan penguatkuasaan invarian kelas merentas subkelasnya.
Bagaimanakah pembina boleh digunakan dalam kelas abstrak?
Pertimbangkan contoh di bawah:
abstract class Product { int multiplyBy; public Product(int multiplyBy) { this.multiplyBy = multiplyBy; } public int multiply(int val) { return multiplyBy * val; } } class TimesTwo extends Product { public TimesTwo() { super(2); } } class TimesWhat extends Product { public TimesWhat(int what) { super(what); } }
Di sini, kelas abstrak Produk mentakrifkan pembina yang memulakan medan darabBy. Kelas konkrit TimesTwo dan TimesWhat mewarisi pembina ini dan menyediakan pelaksanaan atau nilai khusus untuk multiplyBy.
Tujuan Pembina dalam Kelas Abstrak:
Nota: Kelas abstrak boleh mempunyai pembina lalai (no-arg) hanya jika semua pembolehubah contoh adalah muktamad. Walau bagaimanapun, amalan terbaik untuk menyediakan pembina secara eksplisit dalam kelas abstrak untuk menguatkuasakan keperluan permulaan dalam subkelas.
Atas ialah kandungan terperinci Bolehkah Kelas Abstrak Mempunyai Pembina dan Bagaimana Ia Digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!