Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ความแตกต่างระหว่างการแทนที่เมธอดและการซ่อนเมธอดใน C#


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

ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่างการแทนที่เมธอดและการซ่อนเมธอด

ซีเนียร์ เลขที่ คีย์ วิธีการเอาชนะ วิธีซ่อน
1 คำจำกัดความ Method Overriding เป็นกลไกในการบรรลุ polymorphism โดยที่ super class และ sub class มีเมธอดเหมือนกัน รวมถึงพารามิเตอร์และลายเซ็น และเมื่อคุณเรียกมันโดยใช้ sub class object การใช้งานใน subclass จะถูกเรียกใช้ ในทางกลับกัน Method Hiding สามารถกำหนดเป็นเทคนิคที่ผู้ใช้สามารถกำหนดวิธีการของคลาสเบสหรือพาเรนต์ใหม่โดยใช้คีย์เวิร์ดใหม่ ซึ่งส่งผลให้มีการซ่อนการใช้งานพื้นฐานหลักโดยคลาสพื้นฐานของเมธอดนั้น
2 การเข้าถึงการใช้งานหลัก In Method Overriding child class สามารถเข้าถึงการใช้งานวิธีการของ parent class ได้ ในกรณีที่ Method Hiding parent class method ไม่สามารถเข้าถึงได้ผ่านการอ้างอิงคลาสย่อย
3 ตัวดัดแปลงที่ใช้ สำหรับคำหลักที่ใช้แทนที่วิธีการแทนที่เมธอด ในกรณีที่ Method Hiding new keyword ใช้เพื่อกำหนดการใช้งานใหม่ในคลาสย่อย
4 ประเภทการใช้งาน ในเมธอด การแทนที่ประเภทการใช้งานของเมธอดนั้นเป็นประเภทอ็อบเจกต์ อย่างไรก็ตาม ประเภทการใช้งานวิธีการซ่อนเมธอดเป็นประเภทอ้างอิง
5 การอ้างอิงจากพ่อแม่สู่ลูก ใน Method Overriding เมื่อตัวแปรอ้างอิงคลาสพาเรนต์ชี้ไปที่อ็อบเจ็กต์ของคลาสย่อย จากนั้นจะเรียกเมธอดที่ถูกแทนที่ในคลาสย่อย ในอีกทางหนึ่งในการซ่อนเมธอด เมื่อตัวแปรอ้างอิงคลาสพาเรนต์ชี้ไปที่อ็อบเจกต์ของคลาสลูก มันจะเรียกเมธอดที่ซ่อนอยู่ในคลาสพาเรนต์
6 การใช้งาน Method Overrides กำหนดการใช้วิธีการใหม่เท่านั้น การซ่อนวิธีการสามารถกำหนดวิธีการใหม่ได้อย่างสมบูรณ์