การใช้ super จัดทำโดย : Mr.POP พิมพ์
 Untitled Document

สวัสดีครับ สำหรับบทความนี้ผมจะมาเสนอเรื่องของการใช้คำสั่ง super กันนะครับ ซึ่งท่านจะต้องมีความรู้เรื่อง inheritance ก่อนนะครับ ถึงจะนำ super มาใช้งานได้ เรามาเริ่มกันเลยนะครับ

การใช้คำสั่ง Super
คำสั่ง “super” ใช้สำหรับการทำงานใน Subclass (คลาสลูก) โดย Subclass จะเป็นตัวเรียกใช้ มีประโยชน์ คือ
1. Subclass(คลาสลูก) สามารถเรียกใช้ Constructor ของ Superclass(คลาสแม่)ได้
2. สามารถเรียกใช้สมาชิกของ Superclass ในกรณีที่ Subclass และ Superclass มีสมาชิกชื่อเดียวกัน


1. การใช้ Super เพื่อเรียกใช้ Constructor ของ Superclass
ถ้า Superclass มีการสร้าง Constructor ไว้แล้ว Subclass จะสามารถใช้คำสั่ง Super เพื่อเรียกใช้ได้ดังนี้

super(parameter_list)

ลองมาดูโปรแกรมตัวอย่างกันนะครับ

อธิบายโปรแกรม จากโปรแกรมตัวอย่างคลาส out1 เป็น superclass และ out2 เป็น subclass ของคลาส out1 ที่คลาส out1 มี constructor อยู่สองตัวเป็น overloading กัน ส่วนที่คลาส out2 มี constructor ตัวเดียวโดยที่ภายใน constructor ของ out2 มีการใช้ super("Hello") ตรงจุดนี้ล่ะครับจัเป็นการเรียก constructor ของคลาสแม่มาใช้โดยคอมไพล์เลอร์จัเป็นตัวเลือกใช้ constructor ในคลาสแม่ตามพารามิเตอร์ที่ระบุ จากในตัวอย่างเราเรียก super โดยส่ง "Hello" ไปด้วยดังนั้นมันจึงไปทำ constructor ตัวที่ 2 ในคลาส out1จากนั้นเราทำการสร้าง instance ใน main จากคลาส out2 เราจึงได้ output เป็น "Hello Webthaidd.com" ให้ลองเรียก super() แบบนี้ดูนะครับแ้ล้วดูว่าผลลัพธ์จะออกมาอย่างไร

***ขอสังเกตุ การใช้คำสั่ง super เพื่อเรียกใช้ Constructor ของคลาสแม่นั้นจะใช้ได้ใน constructor ของคลาสลูกเท่านั้นไม่สามารถใช้นอก constructor ได้และใช้เรียกได้ครั้งเดียวไม่สามารถเรียกซ้ำๆ กันหลายจุดได้

2. การใช้ Super เพื่อเรียกใช้สมาชิกของ Superclass
ใช้ในการกล่าวอ้างถึงสมาชิกใน Superclass ในกรณีที่ใช้ตัวแปรหรือ Method เป็นชื่อเดียวกัน มีวิธีการใช้งานคือ

super.member

อธิบายโปรแกรม จากตัวอย่างนะครับผมให้จับจุดตรงที่คลาส A ที่เป็นคลาสแม่และคลาส B ที่เป็นคลาสลูกซึ่งมีการประกาศตัวแปร x เหมือนกันครับ จากนั้นภายในคลาส B มีการเรียกใช้สมาชิก x ในกรณีที่เราไม่ได้ระบุ super กับตัวแปร x คลาส B จะเข้าใจว่า x นั้นเป็นของ B แต่ถ้าระบุ super.x แบบนี้จะเป็นการอ้างถึง x ในคลาส A นั้นเอง ให้ลองสังเกตผลลัพธ์ดูนะครับว่า x ตัวไหนเป็นของคลาสไหน

สำหรับคำสั่ง super ก็มีการใช้งานประมาณนี้แหละครับ ให้พยายามจดจำการใช้งานของแต่ละคำสั่งให้ดีนะครับเพื่อความสะดวกรวดเร็วในการใช้งานและความถูกต้อง เอาไว้เจอกันใหม่ในบอความหน้าครับ สวัสดีครับ...

 

คุณอาจสนใจ
การทำโฆษณาแบบพับเก็บได้
Mr.GuruZ (101,144 - 04 มิ.ย. 49)
เปลี่ยนรูปร่างของ Cursor
สายลม (45,847 - 29 มี.ค. 51)
การใช้ Callouts
หมูขุน (15,803 - 04 ก.พ. 50)
ลดขนาดถังขยะเพิ่มพื้นที่ฮาร์ดดิสก์ XP
เว็บไทยดีดี (15,350 - 29 ก.ย. 50)
การสร้างเมนูแบบมีมุมโค้ง
Mr.GuruZ (71,919 - 04 มิ.ย. 49)
เรียกเว็บไซต์ต่าง ๆ ไม่ทันใจจะทำอย่างไรให้เร็วขึ้นอีก
เว็บไทยดีดี (15,043 - 29 ก.ย. 50)
เลือกแสดงแถบเครื่องมือแบบแถวเดียว หรือสองแถว
นายนุก (19,751 - 06 มี.ค. 51)
วิธีแก้ปัญหา Drive A จำข้อมูลเก่า
เว็บไทยดีดี (14,171 - 08 ก.ย. 50)