วีดีโอ: คลาสย่อยสามารถเรียกตัวสร้างคลาสของพาเรนต์ได้หรือไม่
2024 ผู้เขียน: Lynn Donovan | [email protected]. แก้ไขล่าสุด: 2023-12-15 23:54
ไม่มี คลาสย่อย ไม่สามารถสืบทอด ตัวสร้าง ของซูเปอร์คลาสของมัน ตัวสร้าง เป็นสมาชิกฟังก์ชันพิเศษของ a ระดับ ในการที่พวกเขาจะไม่ได้รับการสืบทอดโดย คลาสย่อย . ตัวสร้าง ใช้เพื่อกำหนดสถานะที่ถูกต้องสำหรับวัตถุที่สร้าง
ในเรื่องนี้คอนสตรัคเตอร์ที่สืบทอดมาสามารถเรียกคอนสตรัคเตอร์คลาสของพาเรนต์ได้หรือไม่?
“เพื่อวิงวอน” ตัวสร้างคลาสพาเรนต์ ในเด็ก ระดับ คุณต้องการคีย์เวิร์ด "super" เสมอ ตัวสร้าง ไม่ได้เป็นสมาชิกจึงไม่ได้ ได้รับการถ่ายทอด โดย คลาสย่อย , แต่ ตัวสร้าง ของซูเปอร์คลาส สามารถ เรียกจาก คลาสย่อย.
รู้ยัง คุณจะเรียก Constructor สำหรับคลาสพาเรนต์ได้อย่างไร? เพื่อที่จะเรียกใช้ a ตัวสร้างหลัก , NS เรียก ถึง พ่อแม่ ::_construct() ภายในตัวลูก ตัวสร้าง ต้องระบุ. หากเด็กไม่ได้กำหนด a ตัวสร้าง ก็อาจจะสืบทอดมาจาก ชั้นผู้ปกครอง เหมือนปกติ ระดับ เมธอด (หากไม่ได้ประกาศเป็นไพรเวต)
ต่อจากนี้ คำถามคือ เราจะเรียก subclass constructor จาก superclass constructor ใน Java ได้หรือไม่?
คุณ ไม่ได้ เรียก NS ตัวสร้างคลาสย่อย จาก ตัวสร้างชั้นยอด . โทร NS ตัวสร้าง ของ คลาสย่อย ภายใน ตัวสร้าง ของคลาสฐานเป็นไปไม่ได้ มีเหตุผลหลายประการสำหรับเรื่องนี้แต่ หนึ่ง นั่นคือ ตัวสร้าง ของคลาสที่ได้รับ โทร , โดยนัยหรือโดยชัดแจ้ง, a ตัวสร้าง ของคลาสพื้นฐาน
คลาสย่อยเรียกใช้คอนสตรัคเตอร์ของซูเปอร์คลาสอย่างไร
NS คลาสย่อย สามารถมี ของมัน เป็นเจ้าของข้อมูลส่วนตัวของสมาชิก ดังนั้น a คลาสย่อย ก็มี ของมัน เป็นเจ้าของ ตัวสร้าง . ดังนั้น เมื่อ คลาสย่อย วัตถุถูกสร้างอินสแตนซ์ คลาสย่อย ออบเจ็กต์จะต้องดำเนินการอย่างใดอย่างหนึ่งของ.โดยอัตโนมัติ ตัวสร้าง ของ ซุปเปอร์คลาส . ถึง เรียก NS ตัวสร้างซูเปอร์คลาส มีการใช้คีย์เวิร์ดพิเศษ