Saya bingung apa masalahnya jika konstruktor diwarisi dari kelas dasar. Cpp Primer Plus mengatakan,
Konstruktor berbeda dari metode kelas lain dalam hal mereka membuat objek baru, sedangkan metode lain dipanggil oleh objek yang ada . Ini adalah salah satu alasan konstruktor tidak diwariskan . Warisan berarti objek yang diturunkan dapat menggunakan metode kelas dasar, tetapi, dalam kasus konstruktor, objek tidak ada sampai setelah konstruktor menyelesaikan tugasnya.
Saya mengerti konstruktor dipanggil sebelum konstruksi objek selesai.
Bagaimana ini dapat menimbulkan masalah jika kelas anak mewarisi ( Dengan mewarisi maksud saya kelas anak dapat menimpa metode kelas induk dll. Tidak hanya mengakses metode kelas induk ) induk konstruktor?
Saya mengerti tidak ada keharusan secara eksplisit memanggil konstruktor dari dalam kode [belum saya sadari.] Kecuali saat membuat objek. Bahkan kemudian Anda dapat melakukannya dengan menggunakan beberapa mekanisme untuk memanggil konstuktor induk [Dalam cpp, menggunakan ::
atau menggunakan member initialiser list
, Dalam java menggunakan super
]. Di Jawa ada penegakan untuk menyebutnya di baris 1, saya mengerti itu adalah untuk memastikan objek induk dibuat terlebih dahulu dan kemudian konstruksi objek anak dilanjutkan.
Itu bisa menimpanya . Tetapi, saya tidak dapat menemukan situasi di mana ini dapat menimbulkan masalah. Jika anak mewarisi konstruktor orang tua, apa yang salah?
Begitu juga ini hanya untuk menghindari mewarisi fungsi yang tidak perlu. Atau ada yang lebih dari itu?