Junior
Abstraksiya və çoxşəkillik arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Abstraksiya, obyektin həyata keçirilmə detalları gizlətməyə və obyektin sadələşdirilmiş təqdimatını təmin etməyə yönəlib. Polimorfizm, müxtəlif siniflərdən obyektləri əsas sinif və ya interfeys kimi işləməyə imkan verir və hər obyekt üçün xüsusi fəaliyyətləri yerinə yetirir.
| Xüsusiyyət | Abstraksiya | Polimorfizm |
|---|---|---|
| Əsas mahiyyəti | Detalları gizlətmək, ümumi görünüş təmin etmək | Müxtəlif tiplərdəki obyektləri vahid şəkildə işləmək imkanı |
| Hədəfi | Sadələşdirmə, mürəkkəbliyi azaltmaq | Elastiklik, genişləndiriləbilərlik, kodun ümumiləşdirilməsi |
| Necə əldə edilir | Abstrakt siniflər, interfeyslər | Metodların yüklənməsi, metodların üst-üstə qoyulması, interfeyslər |
| Nümunə | Avtomobil sinfi motor detalları olmadan |
get() metodu müxtəlif sinflərdə (Sedan, Yük maşını) |
Abstraksiya nümunəsi (abstraksiyanın istifadəsi):
interface Forma {
// Abstrakt metod
double hesablaSahə();
}
class Dairə implements Forma {
private double radius;
public Dairə(double radius) {
this.radius = radius;
}
@Override
public double hesablaSahə() {
// Həyata keçirilmə detalları interfeys metodunun arxasında gizlənmişdir
return Math.PI * radius * radius;
}
}
Polimorfizm nümunəsi:
// Polimorfizm istifadəsi
Forma mənimForma = new Dairə(5);
// `hesablaSahə()` metodunu əsas tipdə (interfeys Forma) çağırmaq
// Əslində, Dairə sinifindən `hesablaSahə()` metodu icra olunacaq
double sahə = mənimForma.hesablaSahə();
System.out.println("Sahə: " + sahə);