4.1 ความหมายของการสืบทอดคุณสมบัติ (Inheritance)
4.1 ความหมายของการสืบทอดคุณสมบัติ (Inheritance)
การสืบทอดคุณสมบัติ หรือ Inheritance ในการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming) หมายถึงกระบวนการที่คลาสหนึ่ง (เรียกว่า คลาสย่อย หรือ Subclass) สืบทอดคุณสมบัติและพฤติกรรม (เช่น ฟิลด์และเมธอด) จากคลาสอีกคลาสหนึ่ง (เรียกว่า คลาสหลัก หรือ Superclass หรือบางครั้งเรียกว่า Base Class) การสืบทอดคุณสมบัติช่วยให้เราสามารถสร้างคลาสใหม่โดยใช้โครงสร้างและพฤติกรรมจากคลาสที่มีอยู่แล้ว ลดการเขียนโค้ดซ้ำ และช่วยให้สามารถจัดการและพัฒนาโปรแกรมที่มีขนาดใหญ่ได้ง่ายขึ้น
การเขียนทับ (overriding) คือการที่คลาสย่อยสามารถเขียนทับเมธอดของคลาสหลักที่ได้สืบทอดมาภายในคลาสย่อยนั้นๆ ซึ่งทำให้สามารถเปลี่ยนพฤติกรรมของเมธอดในคลาสย่อยได้
คลาสหลัก (Superclass หรือ Parent Class): คลาสที่มีคุณสมบัติที่ต้องการสืบทอดไปยังคลาสลูก
คลาสย่อย (Subclass หรือ Child Class): คลาสที่ได้รับคุณสมบัติจากคลาสหลัก สามารถใช้คุณสมบัติของคลาสหลักได้ทั้งหมดและยังสามารถเพิ่มคุณสมบัติหรือพฤติกรรมใหม่ได้
Single Inheritance (การสืบทอดเดี่ยว): คลาสลูกสืบทอดคุณสมบัติจากคลาสหลักเพียงคลาสเดียว
Multiple Inheritance (การสืบทอดหลายคลาส): คลาสลูกสามารถสืบทอดคุณสมบัติจากหลายคลาส (ในบางภาษา เช่น Python รองรับ)
Multilevel Inheritance (การสืบทอดหลายระดับ): คลาสลูกสามารถสืบทอดคุณสมบัติจากคลาสที่สืบทอดมาแล้ว
Hierarchical Inheritance (การสืบทอดในลำดับชั้น): หลายๆ คลาสลูกสามารถสืบทอดจากคลาสหลักเดียวกัน
การใช้ซ้ำ: สามารถใช้คุณสมบัติและพฤติกรรมของคลาสหลักซ้ำได้ในคลาสย่อย โดยไม่ต้องเขียนโค้ดใหม่
การขยายโปรแกรม: สามารถขยายระบบโปรแกรมได้ง่ายๆ โดยการสร้างคลาสลูกใหม่ที่สืบทอดมาจากคลาสหลัก
การรักษาความสัมพันธ์: การสืบทอดช่วยให้สามารถจัดระเบียบคลาสและแสดงความสัมพันธ์ระหว่างคลาสต่างๆ ได้ดีขึ้น