การสืบทอดเดี่ยวกับการสืบทอดหลายรายการ
เนื้อหา
- สารบัญ: ความแตกต่างระหว่างการสืบทอดเดี่ยวและการสืบทอดหลายรายการ
- แผนภูมิเปรียบเทียบ
- มรดกเดียว
- หลายมรดก
- ความแตกต่างที่สำคัญ
- ข้อสรุป
- วิดีโออธิบาย
ความแตกต่างที่สำคัญระหว่างการสืบทอดเดี่ยวและการสืบทอดหลายครั้งคือในการสืบทอดเดี่ยวคลาสที่ได้รับจะสืบทอดคลาสฐานเดียวเท่านั้นในขณะที่ในการสืบทอดหลายคลาสคลาสที่ได้รับจะสืบทอดคลาสฐานมากกว่าหนึ่งคลาส
การสืบทอดเป็นหนึ่งในแนวคิดที่สำคัญที่สุดใน 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 การติดตั้งโค้ดสำหรับการสืบทอดหลาย ๆ อันนั้นซับซ้อนเมื่อเปรียบเทียบกับการสืบทอดเดี่ยว
ความแตกต่างที่สำคัญ
- ในการสืบทอดเดี่ยวคลาสที่ได้รับจะสืบทอดคลาสฐานเดียวเท่านั้นในขณะที่ในการสืบทอดหลายคลาสคลาสที่ได้รับจะสืบทอดคลาสฐานมากกว่าหนึ่งคลาส
- การสืบทอดเดี่ยวนั้นปลอดภัยกว่าการสืบทอดหลายขณะที่การสืบทอดหลายครั้งไม่ปลอดภัยที่จะนำไปใช้
- ในคุณสมบัติการสืบทอดเดี่ยวของคลาสเดียวนั้นจะถูกสืบทอดในขณะที่ในคุณลักษณะการสืบทอดหลายคลาสของหลายคลาสสามารถสืบทอดได้
- การสืบทอดเดี่ยวต้องใช้เวลามากขึ้นในขณะที่การสืบทอดหลายครั้งต้องใช้เวลาทำงานน้อยลง
ข้อสรุป
ในบทความข้างต้นเราเห็นความแตกต่างที่ชัดเจนระหว่างการสืบทอดเดี่ยวและการสืบทอดหลายประการกับการใช้งาน