1. วิธีการแบบคงที่เป็นวิธีการเริ่มต้น ซึ่งจะถูกเรียกเหมือนกับขั้นตอนและฟังก์ชันปกติ คอมไพลเลอร์จะทราบที่อยู่ของวิธีการเหล่านี้ ดังนั้นเมื่อมีการเรียกใช้วิธีการแบบคงที่ จะสามารถเชื่อมโยงข้อมูลที่กำลังรันอยู่เข้ากับไฟล์ที่ปฏิบัติการได้ ดังนั้นวิธีคงที่จึงเป็นวิธีที่เร็วที่สุด แต่ไม่สามารถแทนที่ได้เพื่อรองรับความหลากหลาย
2. วิธีการเสมือนและวิธีสแตติกถูกเรียกในลักษณะเดียวกัน เนื่องจากวิธีการเสมือนสามารถแทนที่ได้ คอมไพลเลอร์จะไม่ทราบที่อยู่ของวิธีการเสมือนที่ระบุเมื่อมีการเรียกในโค้ด ดังนั้น คอมไพเลอร์จึงค้นหาที่อยู่ของฟังก์ชันขณะรันไทม์โดยการสร้างตารางวิธีการเสมือน (VMT) วิธีการเสมือนทั้งหมดได้รับการประมวลผลผ่าน VMT ณ รันไทม์ นอกเหนือจากวิธีการเสมือนที่กำหนดด้วยตนเองแล้ว ตาราง VMT ของอ็อบเจ็กต์ยังมีวิธีการเสมือนทั้งหมด ดังนั้น วิธีการเสมือนจึงใช้หน่วยความจำมากกว่าวิธีไดนามิก แต่จะดำเนินการได้ค่อนข้างรวดเร็ว
3. วิธีการไดนามิกโดยพื้นฐานแล้วคล้ายกับวิธีการเสมือน ยกเว้นว่าระบบความสูงจะแตกต่างกัน คอมไพลเลอร์กำหนดหมายเลขเฉพาะให้กับวิธีไดนามิกแต่ละวิธี และใช้หมายเลขนี้และที่อยู่ของวิธีไดนามิกเพื่อสร้างตารางวิธีไดนามิก (DMT) ต่างจากตาราง VMT ตรงที่มีเพียงวิธีการแบบไดนามิกที่ประกาศในตาราง DMT และวิธีนี้ต้องใช้ตาราง DMT ระดับบนเพื่อเข้าถึงวิธีการแบบไดนามิกอื่นๆ ด้วยเหตุนี้ วิธีการแบบไดนามิกจึงใช้หน่วยความจำน้อยกว่าวิธีการเสมือน แต่จะประมวลผลได้ช้ากว่าเนื่องจากอาจต้องค้นหาวิธีการแบบไดนามิกใน DMT ของออบเจ็กต์
4. OP ใช้การแทนที่เพื่อทำให้วิธีการแสดงพฤติกรรมที่แตกต่างกันในคลาสที่ได้รับที่แตกต่างกัน วิธีการที่สามารถแทนที่ได้ใน OP คือวิธีการที่ถูกทำเครื่องหมายว่าเป็นเสมือนหรือไดนามิกเมื่อมีการประกาศ หากต้องการแทนที่วิธีการ ให้ใช้การแทนที่แทนเสมือนหรือไดนามิกในการประกาศคลาสที่ได้รับ หลังจากใช้การแทนที่ คอมไพลเลอร์จะแทนที่วิธีดั้งเดิมใน VMT ด้วยวิธีใหม่ และวิธีการเดิมยังคงมีอยู่ หากคุณใช้การแทนที่เพื่อประกาศวิธีการแบบคงที่อีกครั้ง วิธีนั้นจะถือเป็นการแทนที่จริง ซึ่งจะถูกครอบคลุมโดยวิธีการใหม่ทั้งหมด แทนที่วิธีการเดียวกันในคลาสบรรพบุรุษ