Sobes.tech
Junior — Middle

Paaiškinkite polimorfizmo sąvoką objektinio programavimo srityje ir kaip jis realizuojamas kode.

sobes.tech AI

Atsakymas iš AI

Objektų orientuoto programavimo polimorfizmas — tai gebėjimas skirtingų klasių objektų reaguoti į tas pačias žinutes (metodų iškvietimus) skirtingai. Tai leidžia naudoti vieną sąsają darbui su skirtingų tipų objektais.

Java polimorfizmas įgyvendinamas per paveldėjimą ir metodų perrašymą. Pavyzdžiui, bazinė klasė deklaruoja metodą, o pogrupiai jį įgyvendina savaip.

Pavyzdys:

class Animal {
    void sound() {
        System.out.println("Kažkoks garsas");
    }
}

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

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(); // Spausdins "Laižymas"
        a2.sound(); // Spausdins "Miau"
    }
}

Čia, kintamasis tipo Animal gali nurodyti į skirtingų pogrupių objektus, o metodo sound() iškvietimas bus vykdomas priklausomai nuo tikrojo objekto tipo — tai yra polimorfizmas.