วิธีการบรรทุกเกินพิกัดคืออะไร?

วิธีการบรรทุกเกินพิกัดเป็นคุณสมบัติในภาษาการเขียนโปรแกรมเชิงวัตถุส่วนใหญ่ซึ่งวิธีการสองวิธีขึ้นไปใช้ชื่อเดียวกัน แต่มีพารามิเตอร์ที่แตกต่างกัน โดยเฉพาะจำนวนชนิดข้อมูลและ / หรือคำสั่งของพารามิเตอร์จะแตกต่างกัน เมื่อรวบรวมรหัสวิธีการที่ถูกต้องจะถูกเลือกโดยอัตโนมัติตามวิธีการเรียกใช้ เมธอดเป็นที่รู้จักกันว่าฟังก์ชั่นในบางภาษาการเขียนโปรแกรมดังนั้นบางครั้งเมธอดการโอเวอร์โหลดจึงเรียกว่าการโอเวอร์โหลดฟังก์ชัน

ตัวอย่างง่ายๆของวิธีการมากไปจะเป็นวิธีที่คำนวณพื้นที่ของสแควร์ มันอาจถูกกำหนดเป็น getArea (Square s) วิธีนี้สามารถโอเวอร์โหลดเพื่อคำนวณพื้นที่ของวงกลมเพิ่มเติมโดยการเพิ่มเมธอด getArea (Circle c)

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

คอนสตรัคเตอร์วิธีที่ใช้ในการสร้างอินสแตนซ์วัตถุมักจะมีการโหลดมากเกินไป สิ่งนี้ทำเพื่อเริ่มต้นวัตถุที่มีค่าที่ไม่ใช่ค่าเริ่มต้น ตัวอย่างเช่นวัตถุพนักงานที่มีสองฟิลด์ (ชื่อและวันเดือนปีเกิดหรือวันเกิด) อาจมีคอนสตรัคเตอร์ที่โอเวอร์โหลดดังต่อไปนี้: Employee (), Employee (ชื่อ) และ Employee (ชื่อ, dob) ตัวสร้างแรกสร้างวัตถุพนักงานที่มีชื่อว่างเปล่าและเขตข้อมูล dob ที่สองตั้งค่าฟิลด์ชื่อ แต่ปล่อยให้ฟิลด์ dob ว่างเปล่าและฟิลด์ที่สามกำหนดทั้งฟิลด์ชื่อและ dob

การโอเวอร์โหลดวิธีส่วนใหญ่มักจะทำเพื่อให้มากกว่าหนึ่งวิธีปรากฏอย่างมีเหตุผลเป็นวิธีเดียว ในตัวอย่าง getArea () ในขณะที่มีสองวิธีทางกายภาพผู้เรียกจะถูกนำเสนอด้วยวิธีเดียว getArea ตรรกะ () วิธีการ ด้วยวิธีนี้ getArea () สามารถขยายเพื่อทำงานกับรูปร่างอื่น ๆ - สามเหลี่ยม, สี่เหลี่ยมคางหมูและอื่น ๆ - ในขณะที่ยังคงนำเสนอตัวเองในเชิงตรรกะเป็นวิธีการเดียว

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

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

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