Junior
Mis vahe on abstraktsiooni ja polümorfismi vahel?
sobes.tech AI
Vastus AI-lt
Abstrakts fokusē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 |
|---|---|---|
| Prasme | 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);