Junior
Kāda ir atšķirība starp abstrakciju un polimorfismu?
sobes.tech AI
Atbilde no AI
Abstrakcija koncentrējas uz detaļu slēpšanu un vienkāršota objekta attēlojuma nodrošināšanu. Polimorfisms ļauj apstrādāt dažādu klases objektus kā vienas pamata klases vai saskarnes objektus, izpildot katra objekta specifiskās darbības.
| Raksturlielums | Abstrakcija | Polimorfisms |
|---|---|---|
| ** būtība** | Detaļu slēpšana, kopēja skatījuma nodrošināšana | Spēja apstrādāt dažādu tipu objektus vienādi |
| Mērķis | Vienkāršošana, sarežģītības samazināšana | Elastīgums, paplašināmība, koda universālums |
| Kā tiek panākts | Abstraktas klases, saskarnes | Metožu pārrakstīšana, metožu pārklāšana, saskarnes |
| Piemērs | Klase Auto bez dzinēja detaļām |
Metode braukt() dažādās klasēs (Sedans, Kravas) |
Abstrakcijas piemērs (abstrakcijas izmantošana):
saskarne Shape {
// Abstrakts metodes
double calculateArea();
}
klase Circle ievieš Shape {
privāts double radius;
publiskais Circle(double radius) {
this.radius = radius;
}
@Override
public double calculateArea() {
// Realizācijas detaļas ir slēptas aiz saskarnes metodes
return Math.PI * radius * radius;
}
}
Polimorfisma piemērs:
// Polimorfisma izmantošana
Shape myShape = jauns Circle(5);
// Izsauc calculateArea() metodi caur bāzes tipa (saskarnes Shape) atsauci
// Faktiski tiks izpildīta `Circle` klases calculateArea() metode
double area = myShape.calculateArea();
System.out.println("Laukums: " + area);