Java ทำความรู้จักกับ abstract class

    abstract class คือ คลาสที่มีคียเวร์ด abstract อยู่หน้า class เป็นคลาสที่ถูกสร้างขึ้นมาเพื่อเป็นคลาสแม่ (super class) ใช้ในการกำหนดสเปคของคลาสลูก (sub class) ที่จะถูกสร้างเพื่อใช้งานจริง หรือคลาสที่ไม่ต้องการให้นำไปสร้างเป็นออบเจ็กต์ (object) ก็สามารทำให้เป็น abstract class ได้

หมายเหตุ :

super class คือคลาสที่ให้คลาสอื่นสืบทอด (extends) คุณลักษณะ (attribute) และเมธอด (method) ของตัวเองไปใช้งาน
sub class คือคลาสที่ไปสืบทอด (extends) คุณลักษณะ (attribute) และเมธอด (method) จากคลาสแม่ (super class) มาใช้งาน รวมถึงสามารถสร้างคุณลักษณะและเมธอดของตัวเองเพิ่มได้

ตัวอย่าง : abstract class ชื่อ Product

ตัวอย่าง : abstract class ที่มี Attribute และ Method ภายใน

การสร้าง abstract class ต้องคำนึงถึงกฏดังนี้
1. คุณลักษณะ (attribute) ของคลาส เป็น abstract ไม่ได้
2. Inner class สามารถสร้างเป็น abstract class ได้
3. ถ้าสร้างเมธอด เป็น abstract method ในคลาสใด ๆ คลาสนั้นจะต้องสร้างให้เป็น abstract class
4. abstract class สามารถมีคุณลักษณะปกติได้ และไม่จำเป็นต้องมี abstract method
5. abstract class ไม่สามารถนำไปสร้างออบเจ็กต์ได้ แต่นำไปใช้ในการอ้างอิง (reference) ได้

ประโยชน์ของ abstract class
1. เมื่อมีคลาสที่ไม่ต้องการให้นำไปสร้างออบเจ็กต์ ก็กำหนดให้คลาสนั้นเป็น abstract class เช่น คลาสที่ไม่มีคุณลักษณะ (attribute) และ มีเฉพาะ static method ซึ่งถูกเรียกใช้งานผ่านทางชื่อคลาส

2. การสร้างคลาสแม่ให้เป็น abstract class เป็นการกำหนดสเปคให้คลาสที่มา extends เราสามารถสร้าง abstract method เอาไว้ใน abstract class เพื่อให้คลาสที่ extends รับการถ่ายทอดไปเขียนทับ (override) abstract method นั้นให้สามารทำงานได้จริง ตามความต้องการของคลาสลูกที่แตกต่างกัน


เรื่องที่เกี่ยวข้อง
– Java Basic