Junior
Care este diferența dintre abstractizare și polimorfism?
sobes.tech AI
Răspuns de la AI
Abstracția se concentrează pe ascunderea detaliilor de implementare și pe furnizarea unei reprezentări simplificate a obiectului. Polimorfismul permite tratarea obiectelor din clase diferite ca obiecte ale unei clase de bază sau interfețe, efectuând acțiuni specifice pentru fiecare obiect.
| Caracteristică | Abstracție | Polimorfism |
|---|---|---|
| Esenta | Ascunderea detaliilor, oferirea unei viziuni generale | Capacitatea de a trata obiecte de tipuri diferite în mod uniform |
| Scop | Simplificare, reducerea complexității | Flexibilitate, extensibilitate, universalitate a codului |
| Cum se realizează | Clase abstracte, interfețe | Suprasarcină de metode, suprascriere de metode, interfețe |
| Exemplu | Clasa Mașină fără detalii despre motor |
Metoda merge() în diferite clase (Sedan, Camion) |
Exemplu de abstracție (utilizarea abstracției):
interface Formă {
// Metodă abstractă
double calculeazăAria();
}
class Cerc implementează Formă {
private double rază;
public Cerc(double rază) {
this.rază = rază;
}
@Override
public double calculeazăAria() {
// Detaliile de implementare sunt ascunse în spatele metodei interfeței
return Math.PI * rază * rază;
}
}
Exemplu de polimorfism:
// Utilizarea polimorfismului
Formă formaMea = new Cerc(5);
// Apelarea metodei calculeazăAria() prin referința de tip de bază (interfața Formă)
// În mod efectiv, va fi executată metoda calculeazăAria() din clasa Cerc
double aria = formaMea.calculeazăAria();
System.out.println("Aria: " + aria);