ความแตกต่างระหว่างความหลากหลายและการสืบทอดใน OOP

สารบัญ:

ความแตกต่างระหว่างความหลากหลายและการสืบทอดใน OOP
ความแตกต่างระหว่างความหลากหลายและการสืบทอดใน OOP

วีดีโอ: ความแตกต่างระหว่างความหลากหลายและการสืบทอดใน OOP

วีดีโอ: ความแตกต่างระหว่างความหลากหลายและการสืบทอดใน OOP
วีดีโอ: Unit 1 แนวคิดพื้นฐานของหลักการเขียนโปรแกรมเชิงวัตถุ 2024, มิถุนายน
Anonim

Key Difference – ความแตกต่างกับการสืบทอดใน OOP

Object-Oriented Programming (OOP) มักใช้ในการพัฒนาซอฟต์แวร์ ภาษาโปรแกรมหลายภาษารองรับการเขียนโปรแกรมเชิงวัตถุ การเขียนโปรแกรมเชิงวัตถุเป็นวิธีการออกแบบโปรแกรมโดยใช้คลาสและวัตถุ คลาสใน OOP เป็นพิมพ์เขียวเพื่อสร้างวัตถุ คลาสมีคุณสมบัติและวิธีการ วัตถุคือตัวอย่างของการเรียน. OOP ประกอบด้วย 4 เสาหลัก เช่น Inheritance, Polymorphism, Abstraction และ Encapsulation บทความนี้กล่าวถึงความแตกต่างระหว่าง Polymorphism และ Inheritance ใน OOP ความแตกต่างที่สำคัญระหว่าง Polymorphism และ Inheritance ใน OOP คือ Polymorphism คือความสามารถของวัตถุในการทำงานได้หลายวิธี และการสืบทอดคือการสร้างคลาสใหม่โดยใช้คุณสมบัติและวิธีการของคลาสที่มีอยู่

Polymorphism ใน OOP คืออะไร

พหุสัณฐานคือการบ่งชี้หลายรูปแบบ วัตถุหนึ่งสามารถมีพฤติกรรมได้หลายอย่าง Polymorphism สามารถแบ่งออกเป็นสองประเภท พวกมันโอเวอร์โหลดและเอาชนะ

โอเวอร์โหลด

ดูโปรแกรมด้านล่างที่เขียนด้วยภาษาจาวา

ความแตกต่างระหว่างความหลากหลายและการสืบทอดใน OOP
ความแตกต่างระหว่างความหลากหลายและการสืบทอดใน OOP

รูปที่ 01: โอเวอร์โหลด

ตามโปรแกรมด้านบน วัตถุประเภท A จะถูกสร้างขึ้น เมื่อเรียก obj.sum(); มันจะให้ผลลัพธ์ที่เกี่ยวข้องกับวิธี sum() เมื่อเรียก obj.sum(2, 3); มันจะให้ผลลัพธ์ที่เกี่ยวข้องกับผลรวม (int a, int b) สังเกตได้ว่าวัตถุตัวเดียวกันมีพฤติกรรมที่แตกต่างกันไปตามสถานการณ์ เมื่อมีเมธอดหลายเมธอดที่มีชื่อเดียวกัน แต่มีพารามิเตอร์ต่างกันจะเรียกว่าโอเวอร์โหลดมันยังเป็นที่รู้จักกันในนามการผูกแบบคงที่หรือการรวมเวลาที่หลากหลาย

เอาชนะ

Polymorphism อีกประเภทหนึ่งกำลังเอาชนะ อ้างอิงโปรแกรมด้านล่างที่เขียนด้วยภาษาจาวา

ความแตกต่างระหว่างความแตกต่างและการสืบทอดใน OOP_Figure 02
ความแตกต่างระหว่างความแตกต่างและการสืบทอดใน OOP_Figure 02

รูปที่ 02: การเอาชนะ

ตามโปรแกรมด้านบน มี method display() ในคลาส A คลาส B ขยายจากคลาส A ดังนั้น เมธอดทั้งหมดในคลาส A สามารถเข้าถึงได้โดยคลาส B ซึ่งเป็นการสืบทอด แนวคิดการสืบทอดจะอธิบายเพิ่มเติมในภายหลัง

Class B ก็มีวิธี display() เหมือนกัน เมื่อสร้างอ็อบเจ็กต์ประเภท A และวิธีการแสดงการเรียก เอาต์พุตจะให้ B วิธีการแสดงคลาส A จะถูกแทนที่โดยวิธีการแสดงคลาส B ผลลัพธ์ที่ได้คือ B.

เมื่อมีเมธอดที่มีชื่อเหมือนกันและพารามิเตอร์เหมือนกันแต่ในสองคลาสที่ต่างกัน และพวกมันเชื่อมโยงกับการสืบทอดจะเรียกว่าการแทนที่มันยังเป็นที่รู้จักกันในนาม Late Binding, Dynamic Binding, Runtime Polymorphism การโอเวอร์โหลดและการเอาชนะเรียกว่าพหุสัณฐาน เป็นแนวคิดหลักในการเขียนโปรแกรมเชิงวัตถุ

มรดกใน OOP คืออะไร

ดูโปรแกรมด้านล่างที่เขียนด้วยภาษาจาวา

ความแตกต่างที่สำคัญระหว่างความแตกต่างและการสืบทอดใน OOP
ความแตกต่างที่สำคัญระหว่างความแตกต่างและการสืบทอดใน OOP

รูปที่ 03: ตัวอย่างมรดก

ตามโปรแกรมด้านบน คลาส A มี method sum() และ class B มี method sub().

วิธี sum() ของคลาส A สามารถใช้ในคลาส B ได้โดยใช้คีย์เวิร์ดขยาย การนำคุณสมบัติและเมธอดมาใช้ซ้ำในคลาสที่มีอยู่เพื่อสร้างคลาสใหม่เรียกว่าการสืบทอด แม้จะไม่มีวิธี sum() ในคลาส B; มันสืบทอดมาจากคลาส A การสืบทอดมีประโยชน์สำหรับการนำรหัสกลับมาใช้ใหม่ได้ คลาสที่เก่ากว่าเรียกว่าคลาสพื้นฐาน ซูเปอร์คลาส หรือคลาสพาเรนต์คลาสที่ได้รับเรียกว่าคลาสย่อยหรือคลาสย่อย

ประเภทของมรดก

มรดกมีหลายประเภท เป็นการสืบทอดระดับเดียว การสืบทอดหลายระดับ การสืบทอดหลายระดับ การสืบทอดตามลำดับชั้น และการสืบทอดแบบลูกผสม

มรดกเดี่ยว

ใน Single Inheritance มี super class หนึ่งคลาสและ sub class หนึ่งคลาส ถ้าคลาส A เป็นซูเปอร์คลาส และคลาส B เป็นคลาสย่อย คุณสมบัติและวิธีการทั้งหมดของคลาส A สามารถเข้าถึงได้โดยคลาส B มีเพียงระดับเดียวเท่านั้น ดังนั้นจึงเรียกว่าเป็นมรดกระดับเดียว

มรดกหลายระดับ

ในการสืบทอดหลายระดับมีสามระดับของชั้นเรียน คลาสระดับกลางสืบทอดมาจากซูเปอร์คลาส คลาสย่อยสืบทอดมาจากคลาสระดับกลาง หากมีสามคลาส A, B และ C และ A เป็นซูเปอร์คลาสและ B เป็นคลาสกลาง จากนั้น B สืบทอดจาก A และ C สืบทอดมาจาก B ซึ่งเป็นมรดกหลายระดับ

มรดกหลายตัว

ใน Multiple Inheritance มี super class มากมายและ sub class หนึ่งคลาส หากมีซูเปอร์คลาสสามคลาสที่เรียกว่า A, B, C และ D เป็นคลาสย่อย คลาส D สามารถสืบทอดจาก A, B และ C ได้ การสืบทอดหลายรายการได้รับการสนับสนุนในภาษาการเขียนโปรแกรม C++ ไม่รองรับในภาษาการเขียนโปรแกรม เช่น Java หรือ C อินเทอร์เฟซใช้สำหรับการนำการสืบทอดหลายรายการไปใช้ในภาษาเหล่านี้

การสืบทอดตามลำดับชั้น

ถ้ามีคลาสที่เรียกว่า A เป็น super class และ B, C เป็นคลาสย่อย คลาสย่อยเหล่านั้นสามารถสืบทอดคุณสมบัติและเมธอดของคลาส A ได้ ประเภทการสืบทอดประเภทนั้นเรียกว่า Hierarchical Inheritance

มรดกลูกผสม

มีการสืบทอดพิเศษอีกประเภทหนึ่งที่เรียกว่าการสืบทอดแบบไฮบริด เป็นการผสมผสานระหว่างมรดกหลายระดับและหลายระดับ หาก A, B, C และ D เป็นคลาส และ B สืบทอดจาก A และ D สืบทอดมาจากทั้ง B และ C แสดงว่าเป็นมรดกแบบไฮบริด

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

ทั้งสองเป็นแนวคิดของการเขียนโปรแกรมเชิงวัตถุ

ความแตกต่างระหว่างความหลากหลายและการสืบทอดใน OOP คืออะไร

พหุสัณฐานเทียบกับการสืบทอดใน OOP

รูปหลายเหลี่ยมคือความสามารถของวัตถุที่จะประพฤติตนในหลายรูปแบบ การสืบทอดคือการสร้างคลาสใหม่โดยใช้คุณสมบัติและเมธอดของคลาสที่มีอยู่
การใช้งาน
Polymorphism ใช้สำหรับอ็อบเจ็กต์ที่จะเรียกใช้เมธอดรูปแบบใด ณ เวลาคอมไพล์และรันไทม์ การสืบทอดใช้สำหรับโค้ดที่นำกลับมาใช้ใหม่ได้
การนำไปใช้
Polymorphism ถูกนำมาใช้ในวิธีการ ใช้การสืบทอดในชั้นเรียน
หมวดหมู่
พหุรูปร่างแบ่งออกได้เป็นโอเวอร์โหลดและโอเวอร์ไรด์ การสืบทอดสามารถแบ่งออกเป็นระดับเดียว หลายระดับ ลำดับชั้น ลูกผสม และมรดกหลายชั้น

สรุป – ความหลากหลายกับการสืบทอดใน OOP

พหุสัณฐานและการสืบทอดเป็นแนวคิดหลักในการเขียนโปรแกรมเชิงวัตถุ ความแตกต่างระหว่าง Polymorphism และ Inheritance ใน OOP คือ Polymorphism เป็นส่วนต่อประสานกับหลายรูปแบบ และ Inheritance คือการสร้างคลาสใหม่โดยใช้คุณสมบัติและเมธอดของคลาสที่มีอยู่ แนวคิดทั้งสองนี้ใช้กันอย่างแพร่หลายในการพัฒนาซอฟต์แวร์

ดาวน์โหลดไฟล์ PDF ความหลากหลายกับการสืบทอดใน OOP

คุณสามารถดาวน์โหลดไฟล์ PDF ของบทความนี้และใช้เพื่อวัตถุประสงค์ออฟไลน์ตามหมายเหตุอ้างอิง โปรดดาวน์โหลดไฟล์ PDF ที่นี่ความแตกต่างระหว่างความแตกต่างและการสืบทอดใน OOP

แนะนำ: