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