# რა არის მემკვიდრეობითობა

პროგრამირებაში ხშირია შემთხვევა როდესაც გვჭირდება რამოდენიმე მსგავსი კლასის შექმნა, რომელთაც გააჩნიათ ძალიან ბევრი იდენტური თვისება და მეთოდი და მხოლოდ მცირედით განსხვავდებიან ერთმანეთისაგან.\
\
ამ შემთხვევაში ვაწყდებით პრობლემას, რომ გვიწევს ერთიდაიგივე კოდის მრავალ კლასში დაწერა. ხოლო თუ ერთში მოგვინდა ფუქნციონალის შეცვლა ან რაიმე ბაგის გასწორება ესეგი მოგვიწევს ყველა კლასს ჩამოვუაროთ და სათითაოდ განვაახლოთ მათი კოდი.

ასევე იმისათვის რომ უფრო ზუსტად ავაგოთ რეალური სამყაროს საჭიროა მოდელები წარმოვადგინოთ იერარქიების სახით.\\

![](https://392590438-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrgmjFj4NNSsoaQmAk09Z%2Fuploads%2F8Pb9m7EmrJdx0MOp0A73%2F1_s11OLfJQCnLjyi5wsITJeA.png?alt=media\&token=daa4bf4f-7c62-4dc0-9a7b-ea440639198e)

\\

მემკვიდრეობითობა სწორედ მსგავსი პრობლემების მოგვარების გზას წარმოადგენს. მემკვიდრეობითობის გამოყენებით ჩვენ შეგვიძლია კლასის ერარქიები ჩამოვაყალიბოთ სადაც შვილ კლასს მშობელი კლასის თვისებებსა თუ ფუნქციებზე ექნება წვდომა. ანუ ჩვენ შეგვიძლია შევქმნათ 1 მშობელი კლასი რომელშიც გაერთიანებული იქნება ყველაფერი საერთო და შემდგომ უკვე მემკვიდრე/შვილი კლასები რომელიც დააექსთენდებენ ჩვენს მშობელ კლასს და საკუთარ უნიკალურ ფუქნციონალს გაუკეთებენ იმპლემენტაციას. &#x20;

### :thumbsup: უპირატესობები

* <mark style="color:orange;">**Reusability არსებული კოდის გამოყენება**</mark>\
  მემკვიდრე კლასს მშობელი კლასის ყველა public და protected მეთოდებსა და თვისებებზე აქვს წვდომა, შესაბამისიად აღარ გვიწევს იგივე კოდის თავიდან წერა\\

* <mark style="color:orange;">**სისწრაფე და სიამრტივე**</mark>\
  ნაკლები კოდია საწერი ვინაიდან რადგან მემკვიდრე კლასებში მშობელი კლასის ფუნქციონალის განვრცობა ხდება, შესაბამისად სამუშაოდ ნაკლები დროა საჭირო.\\

* <mark style="color:orange;">**ადვილად აღსაქმელია**</mark>\
  კლასების იერარქია განსაზღვრულია ისე როგორც რეალური სამყაროს მოდელების იერარქია, შესაბამისად ინტუიციურია\\

* <mark style="color:orange;">**მარტივია კოდში ცვლილებების შეტანა**</mark>\
  როდესაც მშობელ კლასში შევიტანთ რაიმე ცვლილებას ავტომატურად ეს ცვლილება ვრცელდება შვილ კლასებზეც
