สารบัญ:
คำจำกัดความ - มรดกหมายความว่าอย่างไร
การสืบทอดใน C # คือความสามารถในการสร้างคลาสที่สืบทอดคุณลักษณะและพฤติกรรมจากคลาสที่มีอยู่ คลาสที่สร้างขึ้นใหม่คือคลาสที่ได้รับ (หรือลูก) และคลาสที่มีอยู่คือคลาสพื้นฐาน (หรือพาเรนต์)
การสืบทอดเป็นหนึ่งในคุณสมบัติหลักของการเขียนโปรแกรมเชิงวัตถุ ประโยชน์ของการสืบทอดเป็นส่วนหนึ่งของเหตุผลว่าทำไมการเขียนโปรแกรมโครงสร้างสามารถถูกแทนที่ด้วยการเขียนโปรแกรมเชิงวัตถุ
การสืบทอดใน C # ได้รับการออกแบบทั้งการติดตั้งใช้งานและที่ระดับอินเตอร์เฟส การสืบทอดการใช้งานเกี่ยวข้องกับรหัสจากคลาสหนึ่งที่ถูกนำมาใช้ซ้ำในขณะที่อินเตอร์เฟสการสืบทอดหมายถึงการสืบทอดของลายเซ็นของฟังก์ชันเฉพาะจากประเภทหนึ่งไปยังอีกประเภทหนึ่ง
มรดกเป็นที่รู้จักกันว่าเป็นลักษณะทั่วไป
Techopedia อธิบายการสืบทอด
C # ไม่รองรับการสืบทอดหลาย ๆ อันซึ่งหมายความว่าคลาสสามารถสืบทอดมาจากคลาสฐานเดียวเท่านั้นแม้ว่าคลาสนั้นสามารถได้รับมาจากหนึ่งอินเตอร์เฟสขึ้นไป เนื่องจากลักษณะสกรรมกริยาของการสืบทอดคลาสที่สืบทอดมาจะสืบทอดสมาชิกทั้งหมดของบรรพบุรุษ
ตัวอย่างเช่นคลาส Car และ Bus สามารถได้มาจากคลาสฐานพาหนะผ่านการสืบทอดเนื่องจากทั้ง Car และ Bus เป็นประเภทของยานพาหนะ
คุณสมบัติหลักของการสืบทอดรวมถึง:
- สมาชิกทั้งหมดของคลาสฐานยกเว้นผู้ที่มีความสามารถในการเข้าถึงส่วนตัวสามารถเข้าถึงได้ในคลาสที่ได้รับ
- สมาชิกทั้งหมดของคลาสฐานได้รับการสืบทอดมาจากคลาสฐานยกเว้นตัวสร้างและ destructors
- ไม่เหมือนกับใน C ++ วิธีเสมือนในคลาสที่ได้รับจำเป็นต้องใช้ตัวแก้ไข "แทนที่" เพื่อแทนที่สมาชิกที่สืบทอดมา
- ในการซ่อนสมาชิกที่สืบทอดที่มีชื่อและลายเซ็นเหมือนกันในคลาสที่ได้รับตัวปรับแต่ง "ใหม่" สามารถใช้ได้
- เพื่อป้องกันการสร้างอินสแตนซ์โดยตรงของคลาสคุณสามารถใช้โมดิฟายเออร์ "abstract"
- เพื่อป้องกันการสืบทอดคลาสฐานเพิ่มเติมสามารถประกาศโดยใช้ตัวดัดแปลง "ที่ปิดผนึก"
- ช่วยให้การสร้างลำดับชั้นของคลาสที่เกี่ยวข้องที่สามารถนำมาใช้ใหม่ขยายและแก้ไขพฤติกรรมที่กำหนดไว้ในชั้นเรียนที่มีอยู่
- จะช่วยให้การใช้รหัสซ้ำลดเวลาและความพยายามในการเขียนโปรแกรมและทดสอบ
- มันช่วยปรับปรุงความเป็นโมดูล่าร์และประสิทธิภาพโดยการแบ่งรหัสขนาดใหญ่เป็นชิ้นเล็ก ๆ จัดการได้มากขึ้น
- มันเป็นวิธีการในการบรรลุความหลากหลายซึ่งช่วยให้วัตถุที่จะเป็นตัวแทนมากกว่าหนึ่งประเภท
คำจำกัดความนี้ถูกเขียนในบริบทของ C #
