## Inheritance คืออะไร ใช้งานอย่างไร มีประโยชน์อย่างไร
Inheritance
ถ้าเปรียบเทียบในโลกของเราก็เหมือนกับการที่เราได้รับสมบัติมาจากพ่อแม่ ไม่ว่าจะเป็นตา จมูก หรือความสามารถพิเศษบางอย่าง เช่น ความสามารถในการวาดรูปหรือความเก่งกาจในกีฬาบางประเภท ในโลกของการเขียนโปรแกรม คำว่า Inheritance หรือ การ "ถ่ายทอด" ก็มีความหมายที่ใกล้เคียงกันนี้เลยล่ะครับคำถามที่ว่า Inheritance มีประโยชน์อย่างไร และเมื่อไหร่ที่ควรใช้งาน มาเริ่มกันที่ประโยชน์ก่อนเลยนะครับ
Inheritance นั้นเหมาะกับสถานการณ์ที่เรามี classes ที่มีความเกี่ยวข้องหรือคล้ายคลึงกันและเราต้องการวางแผนที่จะ reuse หรือนำโค้ดเดิมที่มีในระบบมาใช้ใหม่โดยไม่ต้องเขียนเพิ่ม ยกตัวอย่าง เช่น ถ้าเรามี class ที่เรียกว่า `Vehicle` ที่มี attributes และ methods ทั่วไปสำหรับยานพาหนะ และเราต้องการสร้าง class `Car` ที่มีคุณสมบัติทั่วไปเหล่านั้นเราสามารถให้ `Car` "รับทอด" คุณสมบัติเหล่านั้นจาก `Vehicle` ได้ผ่าน Inheritance
เรามาลองดูตัวอย่างโค้ดกันครับ:
class Vehicle:
def __init__(self, brand, model):
self.brand = brand
self.model = model
def display_info(self):
print(f"This is a {self.brand} {self.model}")
# นี่คือการใช้ Inheritance ที่ class Car รับทอดคุณสมบัติจาก class Vehicle
class Car(Vehicle):
def start_engine(self):
print("The engine starts with a roar!")
car = Car("Toyota", "Corolla")
car.display_info() # แสดง This is a Toyota Corolla
car.start_engine() # แสดง The engine starts with a roar!
จากตัวอย่างข้างต้น เราสามารถเห็นว่า `Car` class ได้รับทอด attributes และ methods จาก `Vehicle` class โดยไม่ต้องเขียนโค้ดเหล่านั้นซ้ำใน `Car` ถือเป็นการใช้ประโยชน์จาก Inheritance ที่ยอดเยี่ยมเลยทีเดียวครับ
บทความนี้เขียนขึ้นมาเพื่อให้เข้าใจเกี่ยวกับ Inheritance และความสำคัญของมันในการเขียนโปรแกรม หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรมอย่างมีประสิทธิภาพและถูกวิธี ลองการเข้าชั้นเรียนที่ Expert-Programming-Tutor ได้นะครับ ที่นี่มีคอร์สดีๆ ที่จะทำให้คุณเข้าใจหลักการโปรแกรมมิ่งอย่างลึกซึ้งยิ่งขึ้นครับ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM