Đa hình là khả năng của một hành động hoặc phương thức thực hiện những việc khác nhau dựa trên đối tượng mà nó đang tác động. Đây là nguyên tắc cơ bản thứ ba của lập trình hướng đối tượng. Đa tải, ghi đè và liên kết phương thức động là ba loại đa hình.
Các phương thức đa tải là các phương thức có cùng chữ ký tên nhưng hoặc có số lượng tham số khác nhau hoặc các kiểu khác nhau trong danh sách tham số. Ví dụ 'xoay' một số có thể có nghĩa là tăng nó, 'xoay' một hình ảnh có thể có nghĩa là xoay nó 90 độ. Bằng cách định nghĩa một phương thức để xử lý từng loại tham số, bạn kiểm soát hiệu ứng mong muốn.
Các phương thức ghi đè là các phương thức được định nghĩa lại trong một lớp kế thừa hoặc lớp con. Chúng có cùng chữ ký và định nghĩa lớp con được sử dụng.
Liên kết phương thức động (hoặc muộn) là khả năng của một chương trình giải quyết các tham chiếu đến các phương thức lớp con tại thời gian chạy. Ví dụ, giả sử rằng ba lớp con (Bò, Chó và Rắn) đã được tạo dựa trên lớp trừu tượng Động vật, mỗi lớp có phương thức speak() riêng. Mặc dù mỗi tham chiếu phương thức là đến một Động vật (nhưng không có đối tượng động vật nào tồn tại), chương trình sẽ giải quyết tham chiếu phương thức chính xác tại thời gian chạy.