คลาสย่อยสามารถเรียกตัวสร้างคลาสของพาเรนต์ได้หรือไม่
คลาสย่อยสามารถเรียกตัวสร้างคลาสของพาเรนต์ได้หรือไม่

วีดีโอ: คลาสย่อยสามารถเรียกตัวสร้างคลาสของพาเรนต์ได้หรือไม่

วีดีโอ: คลาสย่อยสามารถเรียกตัวสร้างคลาสของพาเรนต์ได้หรือไม่
วีดีโอ: 10 ข้อที่มือใหม่ Clash of Clans ควรรู้ 2024, พฤศจิกายน
Anonim

ไม่มี คลาสย่อย ไม่สามารถสืบทอด ตัวสร้าง ของซูเปอร์คลาสของมัน ตัวสร้าง เป็นสมาชิกฟังก์ชันพิเศษของ a ระดับ ในการที่พวกเขาจะไม่ได้รับการสืบทอดโดย คลาสย่อย . ตัวสร้าง ใช้เพื่อกำหนดสถานะที่ถูกต้องสำหรับวัตถุที่สร้าง

ในเรื่องนี้คอนสตรัคเตอร์ที่สืบทอดมาสามารถเรียกคอนสตรัคเตอร์คลาสของพาเรนต์ได้หรือไม่?

“เพื่อวิงวอน” ตัวสร้างคลาสพาเรนต์ ในเด็ก ระดับ คุณต้องการคีย์เวิร์ด "super" เสมอ ตัวสร้าง ไม่ได้เป็นสมาชิกจึงไม่ได้ ได้รับการถ่ายทอด โดย คลาสย่อย , แต่ ตัวสร้าง ของซูเปอร์คลาส สามารถ เรียกจาก คลาสย่อย.

รู้ยัง คุณจะเรียก Constructor สำหรับคลาสพาเรนต์ได้อย่างไร? เพื่อที่จะเรียกใช้ a ตัวสร้างหลัก , NS เรียก ถึง พ่อแม่ ::_construct() ภายในตัวลูก ตัวสร้าง ต้องระบุ. หากเด็กไม่ได้กำหนด a ตัวสร้าง ก็อาจจะสืบทอดมาจาก ชั้นผู้ปกครอง เหมือนปกติ ระดับ เมธอด (หากไม่ได้ประกาศเป็นไพรเวต)

ต่อจากนี้ คำถามคือ เราจะเรียก subclass constructor จาก superclass constructor ใน Java ได้หรือไม่?

คุณ ไม่ได้ เรียก NS ตัวสร้างคลาสย่อย จาก ตัวสร้างชั้นยอด . โทร NS ตัวสร้าง ของ คลาสย่อย ภายใน ตัวสร้าง ของคลาสฐานเป็นไปไม่ได้ มีเหตุผลหลายประการสำหรับเรื่องนี้แต่ หนึ่ง นั่นคือ ตัวสร้าง ของคลาสที่ได้รับ โทร , โดยนัยหรือโดยชัดแจ้ง, a ตัวสร้าง ของคลาสพื้นฐาน

คลาสย่อยเรียกใช้คอนสตรัคเตอร์ของซูเปอร์คลาสอย่างไร

NS คลาสย่อย สามารถมี ของมัน เป็นเจ้าของข้อมูลส่วนตัวของสมาชิก ดังนั้น a คลาสย่อย ก็มี ของมัน เป็นเจ้าของ ตัวสร้าง . ดังนั้น เมื่อ คลาสย่อย วัตถุถูกสร้างอินสแตนซ์ คลาสย่อย ออบเจ็กต์จะต้องดำเนินการอย่างใดอย่างหนึ่งของ.โดยอัตโนมัติ ตัวสร้าง ของ ซุปเปอร์คลาส . ถึง เรียก NS ตัวสร้างซูเปอร์คลาส มีการใช้คีย์เวิร์ดพิเศษ