Sobes.tech
Junior

Koja je razlika između apstrakcije i polimorfizma?

sobes.tech АИ

Одговор од АИ

Apstrakcija se fokusira na skrivanje detalja implementacije i pružanje pojednostavljenog prikaza objekta. Polimorfizam omogućava obradu objekata različitih klasa kao objekata jedne osnovne klase ili interfejsa, izvršavajući specifične radnje za svaki objekat.

Karakteristika Apstrakcija Polimorfizam
Suština Skrivanje detalja, pružanje opšte slike Sposobnost da se objekti različitih tipova obrađuju na jedinstven način
Cilj Pojednostavljenje, smanjenje složenosti Fleksibilnost, proširivost, univerzalnost koda
Kako se postiže Apstraktne klase, interfejsi Preopterećenje metoda, preklapanje metoda, interfejsi
Primer Klasa Automobil bez detalja motora Metod kreni() u različitim klasama (Laki, Teretni)

Primer apstrakcije (korišćenje apstrakcije):

interface Oblik {
    // Apstraktna metoda
    double izračunajPovršinu(); 
}

class Krug implements Oblik {
    private double poluprečnik;

    public Krug(double poluprečnik) {
        this.poluprečnik = poluprečnik;
    }

    @Override
    public double izračunajPovršinu() {
        // Detalji implementacije su skriveni iza metode interfejsa
        return Math.PI * poluprečnik * poluprečnik; 
}
}

Primer polimorfizma:

// Korišćenje polimorfizma
Oblik mojaForma = new Krug(5); 
// Pozivanje metode izračunajPovršinu() putem referencije osnovnog tipa (interfejs Oblik)
// U stvarnosti će biti izvršena metoda iz klase Krug
double površina = mojaForma.izračunajPovršinu(); 

System.out.println("Površina: " + površina);