การสืบทอดเดี่ยวกับการสืบทอดหลายรายการ

ผู้เขียน: Laura McKinney
วันที่สร้าง: 4 เมษายน 2021
วันที่อัปเดต: 14 พฤษภาคม 2024
Anonim
หมอยังงง! ศพแตงโมถูกใบพัดมี 1 บั้ง เทียบแผลคน - ซากปลา ดันเจอหลายรอยเฉือน|ทุบโต๊ะข่าว|11/03/65
วิดีโอ: หมอยังงง! ศพแตงโมถูกใบพัดมี 1 บั้ง เทียบแผลคน - ซากปลา ดันเจอหลายรอยเฉือน|ทุบโต๊ะข่าว|11/03/65

เนื้อหา

ความแตกต่างที่สำคัญระหว่างการสืบทอดเดี่ยวและการสืบทอดหลายครั้งคือในการสืบทอดเดี่ยวคลาสที่ได้รับจะสืบทอดคลาสฐานเดียวเท่านั้นในขณะที่ในการสืบทอดหลายคลาสคลาสที่ได้รับจะสืบทอดคลาสฐานมากกว่าหนึ่งคลาส


การสืบทอดเป็นหนึ่งในแนวคิดที่สำคัญที่สุดใน OOP นั่นคือการเขียนโปรแกรมเชิงวัตถุ แนวคิดของการใช้ซ้ำได้รับการสนับสนุนในการสืบทอด ความสามารถในการนำมาใช้ใหม่หมายถึงคลาสใหม่จะใช้คุณสมบัติของคลาสที่มีอยู่แล้ว ในคลาสที่สืบทอดมาสืบทอดคลาสฐานและการเข้าถึงตัวระบุจะตัดสินใจว่าสมาชิกคลาสฐานใดจะถูกสืบทอด มีชนิดของการสืบทอดที่เป็นการสืบทอดเดี่ยว, การสืบทอดลำดับชั้น, การสืบทอดหลายระดับและการสืบทอดไฮบริด ในการสืบทอดเดี่ยวคลาสที่ได้รับจะสืบทอดคลาสฐานเดียวเท่านั้นในขณะที่ในการสืบทอดหลายคลาสคลาสที่ได้รับจะสืบทอดคลาสฐานมากกว่าหนึ่งคลาส

มีคลาสที่ได้รับเพียงคลาสเดียวที่สืบทอดมาจากคลาสฐาน มีสามวิธีในการสืบทอดคลาสฐานที่เป็นสาธารณะได้รับการคุ้มครองและเป็นส่วนตัว Access specifier ใช้เพื่อสืบทอดคลาสฐาน เหตุผลสำหรับการสืบทอดเดี่ยวคือการสืบทอดคุณสมบัติและพฤติกรรมจากคลาสพาเรนต์เดียว วัตถุประสงค์หลักของการเขียนโปรแกรมเชิงวัตถุที่สามารถนำมาใช้รหัสซ้ำได้โดยใช้การสืบทอดเดี่ยว หากเราพูดถึงการสืบทอดเดี่ยวเปรียบเทียบกับการสืบทอดหลายครั้งกว่าการสืบทอดเดี่ยวจะต้องง่ายกว่าการเปรียบเทียบกับการสืบทอดหลายรายการ การแทนที่ฟังก์ชันถูกใช้ในการสืบทอดเดี่ยว ความหลากหลายในเวลาทำงานเรียกว่าการเอาชนะ การเอาชนะทำได้โดยใช้คำสำคัญฟังก์ชันที่เป็นเสมือน คำหลักนี้ใช้ในคลาสฐาน เมื่อคลาสที่ได้รับมากำหนดฟังก์ชันใหม่ฟังก์ชันที่แทนที่จะไม่สามารถเปลี่ยนได้ การแทนที่ใน C ++ กำหนดว่าเวอร์ชันใดของฟังก์ชันที่ถูกเรียก การสืบทอดเดี่ยวถูกใช้ใน C ++, Java, PHP, C # และพื้นฐานภาพ


การสืบทอดหลายแบบอนุญาตให้สืบทอดคลาสฐานมากกว่าหนึ่งคลาสซึ่งหมายความว่าคุณสามารถรับคุณสมบัติของคลาสฐานได้มากกว่าหนึ่งคลาส เราสามารถมีคลาสที่ได้รับมาหนึ่งคลาสและคลาสพื้นฐานหลายคลาส คลาสพื้นฐานนั้นสืบทอดโดยระบุตัวระบุการเข้าถึงแยกต่างหาก การสืบทอดหลายรายการมีการผสานแบบสมมาตรและการขยายแบบอสมมาตร เมื่อมีรูปแบบของอะแดปเตอร์จะใช้การสืบทอดหลายแบบ ใช้การสืบทอดหลายรายการใน C ++, Python, Perl, Eiffel, Dylan, Curl, Eulisp, Tcl การติดตั้งโค้ดสำหรับการสืบทอดหลาย ๆ อันนั้นซับซ้อนเมื่อเปรียบเทียบกับการสืบทอดเดี่ยว

สารบัญ: ความแตกต่างระหว่างการสืบทอดเดี่ยวและการสืบทอดหลายรายการ

  • แผนภูมิเปรียบเทียบ
  • มรดกเดียว
  • หลายมรดก
  • ความแตกต่างที่สำคัญ
  • ข้อสรุป
  • วิดีโออธิบาย

แผนภูมิเปรียบเทียบ

รากฐานมรดกเดียวหลายมรดก
ความหมาย ในการสืบทอดเดี่ยวคลาสที่ได้รับจะสืบทอดคลาสฐานเดียวเท่านั้น

ในการสืบทอดหลายคลาสที่ได้รับจะสืบทอดคลาสฐานมากกว่าหนึ่งคลาส


 

ปลอดภัยการสืบทอดเดี่ยวนั้นปลอดภัยกว่าการสืบทอดหลายครั้งการสืบทอดหลายอย่างไม่ปลอดภัยที่จะใช้
เข้าไปในคุณลักษณะการสืบทอดเดี่ยวของคลาสเดี่ยวนั้นจะถูกสืบทอดในคุณสมบัติการสืบทอดหลาย ๆ คลาสสามารถสืบทอดได้
Runtime การสืบทอดเดี่ยวต้องใช้เวลามากขึ้นการสืบทอดหลายแบบต้องการเวลารันน้อยกว่า

มรดกเดียว

มีคลาสที่ได้รับเพียงคลาสเดียวที่สืบทอดมาจากคลาสฐาน มีสามวิธีในการสืบทอดคลาสฐานที่เป็นสาธารณะได้รับการคุ้มครองและเป็นส่วนตัว Access specifier ใช้เพื่อสืบทอดคลาสฐาน เหตุผลสำหรับการสืบทอดเดี่ยวคือการสืบทอดคุณสมบัติและพฤติกรรมจากคลาสพาเรนต์เดียว วัตถุประสงค์หลักของการเขียนโปรแกรมเชิงวัตถุที่สามารถนำมาใช้รหัสซ้ำได้โดยใช้การสืบทอดเดี่ยว หากเราพูดถึงการสืบทอดเดี่ยวเมื่อเปรียบเทียบกับการสืบทอดหลายครั้งกว่าการสืบทอดเดี่ยวจะต้องง่ายกว่าการเปรียบเทียบกับการสืบทอดหลายรายการ การแทนที่ฟังก์ชันถูกใช้ในการสืบทอดเดี่ยว ความหลากหลายในเวลาทำงานเรียกว่าการเอาชนะ การเอาชนะทำได้โดยใช้คำสำคัญฟังก์ชันที่เป็นเสมือน คำหลักนี้ใช้ในคลาสฐาน เมื่อคลาสที่ได้รับมากำหนดฟังก์ชันใหม่ฟังก์ชันแทนที่จะไม่สามารถเปลี่ยนได้ การแทนที่ใน C ++ กำหนดว่าเวอร์ชันใดของฟังก์ชันที่ถูกเรียก การสืบทอดเดี่ยวถูกใช้ใน C ++, Java, PHP, C # และพื้นฐานภาพ

หลายมรดก

การสืบทอดหลายครั้งทำให้ได้รับคลาสพื้นฐานมากกว่าหนึ่งคลาสซึ่งหมายความว่าคุณสามารถรับคุณสมบัติของคลาสพื้นฐานได้มากกว่าหนึ่งคลาส เราสามารถมีคลาสที่ได้รับมาหนึ่งคลาสและคลาสพื้นฐานหลายคลาส คลาสฐานได้รับการสืบทอดโดยกล่าวถึงตัวระบุการเข้าถึงแยกต่างหาก การสืบทอดหลายรายการมีการรวมกันแบบสมมาตรและการขยายแบบอสมมาตร เมื่อมีรูปแบบของอะแดปเตอร์จะใช้การสืบทอดหลายครั้ง มีการใช้มรดกหลายอย่างใน C ++, Python, Perl, Eiffel, Dylan, Curl, Eulisp, Tcl การติดตั้งโค้ดสำหรับการสืบทอดหลาย ๆ อันนั้นซับซ้อนเมื่อเปรียบเทียบกับการสืบทอดเดี่ยว

ความแตกต่างที่สำคัญ

  1. ในการสืบทอดเดี่ยวคลาสที่ได้รับจะสืบทอดคลาสฐานเดียวเท่านั้นในขณะที่ในการสืบทอดหลายคลาสคลาสที่ได้รับจะสืบทอดคลาสฐานมากกว่าหนึ่งคลาส
  2. การสืบทอดเดี่ยวนั้นปลอดภัยกว่าการสืบทอดหลายขณะที่การสืบทอดหลายครั้งไม่ปลอดภัยที่จะนำไปใช้
  3. ในคุณสมบัติการสืบทอดเดี่ยวของคลาสเดียวนั้นจะถูกสืบทอดในขณะที่ในคุณลักษณะการสืบทอดหลายคลาสของหลายคลาสสามารถสืบทอดได้
  4. การสืบทอดเดี่ยวต้องใช้เวลามากขึ้นในขณะที่การสืบทอดหลายครั้งต้องใช้เวลาทำงานน้อยลง

ข้อสรุป

ในบทความข้างต้นเราเห็นความแตกต่างที่ชัดเจนระหว่างการสืบทอดเดี่ยวและการสืบทอดหลายประการกับการใช้งาน

วิดีโออธิบาย