Abstract Class จะเปรียบเสมือนพิมพ์เขียวที่ไม่สามารถสร้าง Object เหมือน Class แบบปกติได้ เราจำเป็นที่จะต้องสร้าง Class มาเพื่อสืบทอดด้วยคำสั่ง extends อีกที
ถึงตรงนี้อาจจะสงสัยว่าทำไมไม่สร้าง Class แบบปกติเลยหละ โดยทั่วไปมักจะใช้ Abstract Class เพื่อเป็นข้อกำหนดใน Class ที่สืบทอดจะต้อง Override Method ใดบ้างเพื่อให้ Class ที่สืบทอดสามารถใช้งานได้
ตัวอย่าง Abstract Class
โดยใน Abstract class จะมี Method ที่เป็น abstract เหมือนกัน ซึ่งจะไม่ได้กำหนดค่าอะไรไว้ Class ที่สืบทอดจำเป็นที่จำเป็น Override Method นี้เพื่อให้ Class ที่สืบทอดสามารถใช้งานได้
ตัวอย่างการสืบทอด Abstract Class
จะเห็นว่าเรากำหนดค่าแค่ Method makeSound()
เท่านั้น ส่วน Method eat()
สามารถใช้ได้เลย
ตัวอย่างการใช้งาน Abstract Class
เมื่อเราสร้าง Object ขึ้นมาจะเห็นว่า Method makeSound()
จะถูก Override และ Method eat()
สามารถใช้งานได้เลย