Sobes.tech
Junior — Middle

Selgitage välja polümorfismi kontseptsiooni objektorienteeritud programmeerimises ja kuidas see koodis realiseerub.

sobes.tech AI

Vastus AI-lt

Objektorienteeritud programmeerimise polümorfism on võime erinevatel klassidel olevatel objektidel reageerida samadele sõnumitele (meetodite kutsumisele) erinevalt. See võimaldab kasutada ühtset liidest erinevate objektitüüpide töötlemiseks.

Java-s realiseeritakse polümorfism pärimise ja meetodite ülekirjutamise kaudu. Näiteks deklareerib baasklass meetodi, mille alklassid rakendavad omal moel.

Näide:

class Animal {
    void sound() {
        System.out.println("Mõni heli");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Haugumine");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("Miau");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal a1 = new Dog();
        Animal a2 = new Cat();
        a1.sound(); // Trükib "Haugumine"
        a2.sound(); // Trükib "Miau"
    }
}

Siin võib muutuja tüüpi Animal viidata erinevate alamklasside objektidele ning meetodi sound() väljakutse käivitub vastavalt objekti tegelikule tüübile — see on polümorfism.