Trong ngôn ngữ lập trình và lý thuyết kiểu, đa hình (Anh: polymorphism, từ tiếng Hy Lạp πολύς, polys, "nhiều" và μορφή, morphē, "hình dạng") là việc cung cấp một giao diện cho các thực thể thuộc nhiều kiểu khác nhau.[1] Một kiểu đa hình là kiểu mà những toán tử của nó có thể được áp dụng cho các giá trị của kiểu khác, hoặc các kiểu.[2] Có nhiều loại đa hình cơ bản, gồm: đa hình tùy biến (ad hoc polymorphism), đa hình tham số (parametric polymorphism) và đa hình dẫn xuất (subtyping, hay còn gọi là subtype polymorphism, inclusion polymorphism).
polymorphism – providing a single interface to entities of different types.