การ Inherit หรือการสืบทอดไป ความสามารถ รูปลักษณ์เกือบทั้งหมดก็จะได้มรดกไปจากแม่ (base class) ทั้งสิ้น แต่มีบางสิ่งที่สำคัญที่ไม่ได้เป็นของแม่ นั่นก็คือ "หัวใจ"
หัวใจของคลาสที่จะขาดเสียไม่ได้นั่นก็คือ Constructor ทุกคลาสจะต้องมี Constructor ขึ้นอยู่ว่าจะใช้ Constructor ที่ Compiler สร้างให้ หรือจะสร้างเอง
จะทำ Override ก็ไม่ได้ การใช้ Constructor ของคลาสแม่นั้นไม่ยาก แต่จะไม่ได้ใช้โดยตรง คลาสลูกยังมี Constructor ของตัวเองอยู่ แต่ให้ Reference ไปที่คลาสแม่ของตัวเองก่อนที่จะทำงาน
ในตัวอย่าง ผู้เขียนจะสร้างฟอร์ม 2 ฟอร์ม
- Form1 เป็นฟอร์มหลัก
- frmChild เป็นฟอร์มต้นแบบ ใช้เป็น Pattern เท่านั้น
ไฟล์ใน project |
หน้าตาของ frmChild |
หน้าตาของ Form1 |
ผู้เขียนจะทำการ Overload Constructor ใน frmChild เพื่อที่จะให้ใส่ Parameter เข้ามา Set title bar ได้ในตอนสร้าง
จากนั้น Add Form เข้ามาใน Project โดยเลือก Inherited Form |
จะพบหน้าต่างให้เลือกว่าจะ Inherit จากฟอร์มไหน ในที่นี้ผู้เขียนเลือก Inherit จาก frmChild |
ในปุ่ม Show ของ Form1 เป็นคำสั่งให้สร้าง และแสดงฟอร์ม
new Form2("สืบทอด 1").Show();
new Form2("สืบทอด 2").Show();
เมื่อรันทดสอบ หลังจากกดปุ่ม Show จะมีการสร้าง Form2 มา 2 ฟอร์ม โดยมีการเปลี่ยนข้อความบนTitle bar ตามคำสั่งของ Constructor ที่ Overload อยู่ใน frmChild |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น