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