Sobes.tech
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ə);