abstract method

 

abstract method คือ method ที่มี modifier abstract อยู่หน้าชื่อ และมีเพียง signature ของ method โดยไม่มีตัวโปรแกรม
ละหากคลาสใดมี method member เป็น abstract สักตัวหนึ่ง คลาสนั้นจะต้องเป็น abstract ด้วย (เรียกว่า abstract class)
และต้องมี modifier abstract อยู่หน้าชื่อคลาส ในตอนกำหนดคลาสนั้น มิเช่นนั้นจะไม่ผ่าน การคอมไพล์
อย่างไรก็ตาม คลาสที่ไม่มี abstract method แต่หากมี modifier abstract อยู่หน้า ชื่อคลาส จะถือว่าเป็น abstract class ได้เช่นกัน แต่ก็นำไปสร้าง instance ไม่ได้เช่นกัน ต้องขยายเป็นคลาสลูกเสียก่อนจึงจะใช้งานได้ แต่ไม่ต้องมีการ implementation ของ methods ใด ๆ

มีเพียง classes กับ method members เท่านั้นที่เป็น abstract ได้ ส่วน data members เป็น abstract ไม่ได้
คลาสที่เป็น abstract ต่างจากคลาสธรรมดาตรงที่ เราสร้าง instance ของ abstract class ไม่ได้ หรือเรียกว่ายังใช้งานไม่ได้ แต่สังเกตว่าเราสร้าง reference ของ abstract class ได้

คลาสที่เป็น abstract จึงถูกสร้างขึ้นเพื่อเป็นคลาสแม่เท่านั้น โดยจะต้องถูก ขยายออก เป็นคลาสลูกที่มีการ override abstract methods ในคลาสแม่ให้ครบเสียก่อน จึงจะนำคลาสลูกนั้นไปใช้งานได้
 
การ override abstract methods คือการทำให้ abstract methods เหล่านั้นมีตัวโปรแกรม หรือเรียกว่าการทำ implementation ของ abstract method นั้น

Forums: