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);