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