Miraslıq və Tərkibi Arasındakı Fərq

Miraslıq və Tərkibi Arasındakı Fərq
Miraslıq və Tərkibi Arasındakı Fərq

Video: Miraslıq və Tərkibi Arasındakı Fərq

Video: Miraslıq və Tərkibi Arasındakı Fərq
Video: Dərmanla uşaq salmaq və ya dərman abortu 2024, Iyul
Anonim

Vərəslik və Tərkibi

Vərəslik və Kompozisiya OOP-da (Obyekt yönümlü Proqramlaşdırma) tapılan iki vacib anlayışdır. Sadə dillə desək, həm Kompozisiya, həm də Varislik bir sinfə əlavə xüsusiyyətlər və ya davranış təmin etməklə məşğul olur. İrsiyyət, bir sinfin bir ana sinifdən xassələri və davranışı genişləndirərək miras alması qabiliyyətidir. Digər tərəfdən, Kompozisiya sinfin müxtəlif siniflərin obyektlərini üzv datası kimi ehtiva etmək qabiliyyətidir.

Vərəslik nədir?

Yuxarıda qeyd edildiyi kimi, İrsiyyət sinfin onu genişləndirərək ana sinifdən xassələri və davranışı miras alma qabiliyyətidir. Vərəsəlik, yeni müəyyən edilmiş sinif tərəfindən mövcud sinfin xüsusiyyətlərini və davranışını genişləndirməyə imkan verməklə kodun təkrar istifadəsini təmin edir. A sinfi B-ni genişləndirirsə, B sinfi ana sinif (və ya super sinif) və A sinfi uşaq sinif (və ya törəmə sinif/ alt sinif) adlanır. Bu nümunə ssenaridə A sinfi super sinifin (B) bütün ictimai və qorunan atribut və metodlarını miras alacaq. Alt sinif isteğe bağlı olaraq ana sinifdən miras qalmış davranışı ləğv edə bilər (metodlara yeni və ya genişləndirilmiş funksionallıq təmin edə bilər).

Vərəslik OOP-da “is-a” əlaqəsini təmsil edir. Bu, mahiyyətcə A-nın həm də B olması deməkdir. Başqa sözlə, B müəyyən bir real dünya varlığının ümumi təsviri olan sinif ola bilər, lakin A müəyyən bir ixtisası təyin edir. Real dünya proqramlaşdırma problemində Person sinfi İşçi sinfini yaratmaq üçün genişləndirilə bilər. Buna ixtisaslaşma deyilir. Lakin siz əvvəlcə İşçi sinfini yarada və sonra onu Person sinfi üçün ümumiləşdirə bilərsiniz (i.e. ümumiləşdirmə). Bu nümunədə, İşçi Şəxsin bütün xüsusiyyətlərinə və davranışına malik olacaq (yəni, İşçi həm də Şəxsdir) və bəzi əlavə funksiyaları da ehtiva edə bilər (deməli, Şəxs İşçi deyil).

Tərkibi nədir?

Tərkibi sinfin müxtəlif siniflərin obyektlərini üzv verilənləri kimi ehtiva etmək qabiliyyətidir. Məsələn, A sinfi B sinfinin obyektini üzv kimi ehtiva edə bilər. Burada B-də müəyyən edilmiş bütün ictimai metodlar (və ya funksiyalar) A sinfi daxilində icra oluna bilər. A sinfi konteynerə, B sinfi isə ehtiva edilən sinifə çevrilir. Kompozisiyaya Konteynerlik də deyilir. Bu misalda A sinfinin B sinfindən ibarət olduğunu söyləmək olar. OOP-da Kompozisiya “var-a” əlaqəsini təmsil edir. Qeyd etmək vacibdir ki, konteynerin daxil edilmiş sinfin bütün ictimai metodlarını icra etmək imkanı olsa da, o, dəyişdirə və ya əlavə funksionallıq təmin edə bilmir. Real dünya proqramlaşdırma probleminə gəldikdə, TextBox sinifinin obyekti Form sinfində ola bilər və beləliklə, Formada TextBox (və ya alternativ olaraq, Form TextBox-dan ibarətdir) olduğunu söyləmək olar.

Vərəslik və Kompozisiya arasında fərq nədir?

Vərəslik və Kompozisiya iki OOP anlayışı olsa da, proqramçıya nail olmağa imkan verdikləri baxımından tamamilə fərqlidirlər. Varislik bir sinfin ana sinifdən xassələri və davranışı genişləndirməklə onu miras alması qabiliyyətidir, Kompozisiya isə sinfin üzv məlumatları kimi müxtəlif siniflərin obyektlərini ehtiva etmək qabiliyyətidir. Bir sinif genişləndirilirsə, o, bütün ictimai və qorunan xüsusiyyətləri/davranışları miras alır və bu davranışlar alt sinif tərəfindən ləğv edilə bilər. Ancaq bir sinif başqa bir sinifdə olarsa, konteyner ehtiva edilənə davranışı dəyişdirmək və ya əlavə etmək imkanı əldə etmir. Vərəsəlik OOP-da “is-a” münasibətini, Kompozisiya isə “var-a” əlaqəsini təmsil edir.

Tövsiyə: