ความแตกต่างที่สำคัญ – ซูเปอร์คลาส vs คลาสย่อย
ในการเขียนโปรแกรมเชิงวัตถุ (OOP) ระบบสร้างแบบจำลองโดยใช้วัตถุ วัตถุเหล่านี้ถูกสร้างขึ้นโดยใช้คลาส คลาสคือพิมพ์เขียวหรือคำอธิบายเพื่อสร้างวัตถุ การสร้างวัตถุเรียกอีกอย่างว่าการสร้างอินสแตนซ์ของวัตถุ แต่ละวัตถุกำลังสื่อสารกับวัตถุอื่น โปรแกรมหรือซอฟต์แวร์สามารถพัฒนาได้โดยใช้การเขียนโปรแกรมเชิงวัตถุ การสืบทอดเป็นแนวคิดหลักใน OOP ปรับปรุงการใช้รหัสซ้ำได้ แทนที่จะใช้โปรแกรมตั้งแต่เริ่มต้น จะอนุญาตให้สืบทอดคุณสมบัติและเมธอดของคลาสที่มีอยู่แล้วไปยังคลาสใหม่ ช่วยทำให้โปรแกรมสามารถจัดการได้มากขึ้นSuperclass และ Subclass เป็นคำศัพท์สองคำที่เกี่ยวข้องกับการสืบทอด บทความนี้กล่าวถึงความแตกต่างระหว่าง Superclass และ Subclass ความแตกต่างที่สำคัญระหว่าง Superclass และ Subclass คือ Superclass เป็นคลาสที่มีอยู่ซึ่งได้รับคลาสใหม่ในขณะที่ Subclass เป็นคลาสใหม่ที่สืบทอดคุณสมบัติและวิธีการของ Superclass
Superclass คืออะไร
ในการสืบทอด คลาสที่มีอยู่ซึ่งมาจากคลาสใหม่นั้นเรียกว่า Superclass เรียกอีกอย่างว่าคลาสหลักหรือคลาสพื้นฐาน
มรดกมีหลายประเภท มีภาพประกอบโดยใช้ตัวอย่างต่อไปนี้ พิจารณา AB และ C เป็นชั้นเรียน
รูปที่ 01: ประเภทมรดก
รูปที่ 02: มรดกลูกผสม
ตามแผนภาพด้านบน ซูเปอร์คลาสจะแตกต่างกันไปตามประเภทการสืบทอดแต่ละประเภท ในการสืบทอดระดับเดียว A คือซูเปอร์คลาส ในการสืบทอดหลายระดับ A คือ Superclass สำหรับ B และ B คือ Superclass สำหรับ C. ใน Hierarchical Inheritance A คือ Superclass สำหรับทั้ง B และ C ในมรดกหลายรายการ ทั้ง A และ B เป็น Superclasses สำหรับ C
การสืบทอดแบบไฮบริดเป็นการรวมกันระหว่างมรดกหลายระดับและหลายระดับ ในแผนภาพด้านซ้ายมือ A คือ Superclass สำหรับ B, C และ B, C คือ Superclasses สำหรับ D ในแผนภาพด้านขวามือ A คือ Superclass สำหรับ B และ B, D คือ Superclasses สำหรับ C.
ดูโปรแกรมด้านล่างที่เขียนด้วยภาษาจาวา
รูปที่ 03: โครงการสืบทอดในภาษาจาวา
ตามโปรแกรมด้านบน คลาส A มีวิธี sum() และ sub() คลาส B มีเมธอด multiply() คลาส B กำลังขยายคลาส A ดังนั้น คุณสมบัติและเมธอดของคลาส A สามารถเข้าถึงได้โดยคลาส B ดังนั้น คลาส A จึงเป็นซูเปอร์คลาส ประเภทอ้างอิงของคลาส B ถูกนำมาใช้เพื่อสร้างวัตถุ ดังนั้นวิธีการทั้งหมดเช่น sum(), sub() และ multiply() สามารถเข้าถึงได้โดยวัตถุ หากใช้ประเภทการอ้างอิง Superclass สำหรับการสร้างอ็อบเจ็กต์ สมาชิกคลาส B จะไม่สามารถเข้าถึงได้ เช่น. obj=ใหม่ B(); ดังนั้น การอ้างอิง Superclass จึงไม่สามารถเรียกเมธอด multiply() ได้ เนื่องจากเมธอดนั้นเป็นของคลาส B
ซับคลาสคืออะไร
ตามแผนภาพด้านบน คลาสย่อยจะแตกต่างกันไปตามประเภทการสืบทอดแต่ละประเภท ในการสืบทอดเดี่ยว B คือคลาสย่อย ในการสืบทอดหลายระดับ B คือคลาสย่อยของ A และ C คือคลาสย่อยของ Bในการสืบทอดตามลำดับชั้น B และ C เป็นคลาสย่อยของ A ในการสืบทอดหลายรายการ C คือคลาสย่อยสำหรับ A และ B
ในการสืบทอดแบบไฮบริด ไดอะแกรมทางด้านซ้าย B และ C เป็นคลาสย่อยของ A. D คือคลาสย่อยของ B และ C ในแผนภาพทางด้านขวา B คือคลาสย่อยสำหรับ A. C คือคลาสย่อย ของ B และ D.
ตามโปรแกรมการสืบทอดข้างต้น คลาส B กำลังขยายคลาส A ดังนั้น คุณสมบัติและวิธีการทั้งหมดของคลาส A สามารถเข้าถึงได้โดยคลาส B คลาส B เป็นคลาสใหม่ที่สืบทอดมาจากคลาส A เรียกว่า คลาสย่อย เป็นที่รู้จักกันว่าคลาสลูกหรือคลาสที่ได้รับ คลาส B มีเมธอดการคูณ () และสามารถเข้าถึงเมธอด sum() และ sub() ของคลาส A โดยใช้การสืบทอด
ความคล้ายคลึงกันระหว่างซูเปอร์คลาสกับซับคลาสคืออะไร
ทั้งสองเกี่ยวข้องกับมรดก
ซุปเปอร์คลาสและซับคลาสต่างกันอย่างไร
ซูเปอร์คลาสกับซับคลาส |
|
เมื่อใช้งานการสืบทอด คลาสที่มีอยู่ซึ่งได้รับคลาสใหม่คือ Superclass | เมื่อใช้งานการสืบทอด คลาสที่สืบทอดคุณสมบัติและเมธอดจาก Superclass จะเป็นคลาสย่อย |
คำพ้องความหมาย | |
Superclass เรียกว่า base class, parent class | คลาสย่อยเรียกว่าคลาสที่ได้รับ คลาสย่อย |
ฟังก์ชั่น | |
ซูเปอร์คลาสไม่สามารถใช้คุณสมบัติและเมธอดของคลาสย่อยได้ | คลาสย่อยสามารถใช้คุณสมบัติและเมธอดของ Superclass |
มรดกระดับเดียว | |
มีหนึ่ง Superclass. | มีหนึ่งซับคลาส |
การสืบทอดตามลำดับชั้น | |
มีหนึ่งซุปเปอร์คลาส | มีซับคลาสมากมาย |
หลายมรดก | |
มีซุปเปอร์คลาสมากมาย | มีหนึ่งซับคลาส |
สรุป – ซูเปอร์คลาส vs ซับคลาส
มรดกคือแนวคิดของ OOP อนุญาตให้ใช้คุณสมบัติและเมธอดของคลาสที่มีอยู่เพื่อเข้าถึงโดยคลาสใหม่ คลาสที่สืบทอดมาคือ Superclass และคลาสที่ได้รับคือคลาสย่อย ความแตกต่างระหว่าง Superclass และ Subclass คือ Superclass เป็นคลาสที่มีอยู่ซึ่งได้รับคลาสใหม่ในขณะที่ Subclass เป็นคลาสใหม่ที่สืบทอดคุณสมบัติและวิธีการของ Superclass
ดาวน์โหลดไฟล์ PDF Superclass vs Subclass
คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่ ความแตกต่างระหว่าง Superclass และ Subclass