Պոլիմորֆիզմ (ծրագրավորում)

Ծրագրավորման լեզուներում և տիպերի տեսությունում պոլիմորֆիզմ(Հունարեն πολύς, պոլիս, "շատ" և μορφή, մորֆ, "ձև") կոչվում է տարբեր տեսակի տվյալները կարգավորելու ունակությունը։ 
Գոյություն ունեն մի քանի տեսակի պոլիմորֆիզմներ։ Երկու ամենատարբեր տեսակի պոլիմորֆիզմները 1967 թ.-ին նկարագրվել են Քրիսթոֆեր Սթրեչիի կողմից։ Մեկը հատուկ պոլիմորֆիզմն է (կամ ad hoc պոլիմորֆիզմ), մյուսը՝ պարամետրիկ պոլիմորֆիզմը։ Հակիրճ՝ հատուկ պոլիմորֆիզմը նկարագրվում է «նման ինտերֆեյսով շատ իրագործումներ» սկզբունքով, իսկ պարամետրիկը՝ «մեկ իրագործում ընդհանրացված ինտերֆեյսով» պրինցիպով։

Այլ կերպ որպես պոլիմորֆիզմի օրինակներ կարող ենք բերել գերբեռնումը (overloading) և վերարժեքավորումը (overriding)։

Մեթոդի գերբեռնում 
Մեթոդի գերբեռնման ժամանակ ստեղծվում են նույն անվանումով և վերադարձվող տիպով, սակայն տարբեր պարամետրերով մեթոդներ։static void compare(int a, int b){
        if(a > b){
            System.out.printf("%d is greater than %d.", a, b);
        }
        else if(a < b){
            System.out.printf("%d is greater than %d.", b, a);
        }
        else {
            System.out.println("The numbers are equal.");
        }
    }
Ծրագրավորում
Ինֆորմատիկա

Սա երկու թվերի համեմատման մեթոդ էstatic void compare(int a, int b, int c){
        if(a > b && a > c){
            System.out.printf("%d is greater than %d and %d.", a, b, c);
        }
        else if(b > a && b > c){
            System.out.printf("%d is greater than %d and %d.", b, a, c);
        }
        else if (c > a && c > b){
            System.out.printf("%d is greater than %d and %d.", c, a, b);
        }
    }Սա էլ նույն մեթոդը, բայց արդեն երեք թվերի համար

Մեթոդի վերարժեքավորում 
Մեթոդը կարող ենք վերարժեքավորել, երբ որևէ դասից ժառանգված ենթադասում օգտագործում ենք մայր դասի մեթոդը՝ փոխելով նրա պարունակությունը։ public class Person {
    void sayGetting (){
        System.out.println("Hello, I'm a person!");
    }
}Այստեղ Person դասն ունի մեթոդ, որն արտածում է "Բարև, ես մարդ եմ" հաղորդագրությունը։class Student extends Person{

    @Override
    void sayGetting() {
        System.out.println("Hello, I'm a student!");
    }
}Իսկ այստեղ Student դասը ժառանգելով Person դասը և նրա sayGetting մեթոդը արտածում է "Բարև, ես ուսանող եմ" հաղորդագրությունը։