ძირითადი განსხვავება – გადატვირთვა და გადატვირთვა C-ში
C-ში გადატვირთვასა და გადატვირთვას შორის მთავარი განსხვავება ისაა, რომ გადატვირთული მეთოდის ზარის მიბმა მის განსაზღვრებაზე ხდება გაშვების დროს, ხოლო გადატვირთული მეთოდის ზარის დაკავშირება მის განმარტებასთან ხდება კომპილაციის დროს.
C არის ზოგადი დანიშნულების პროგრამირების ენა, რომელიც შემუშავებულია Microsoft-ის მიერ. C-ის მთავარი უპირატესობა ის არის, რომ მხარს უჭერს ობიექტზე ორიენტირებული პროგრამირებას (OOP). OOP-ის ერთი საყრდენი არის პოლიმორფიზმი. ის აძლევს ობიექტს მრავალი ქცევის ქონას. პოლიმორფიზმში არსებობს ორი ტიპი, რომლებიც ცნობილია როგორც გადაჭარბებული და გადატვირთული. ეს სტატია განიხილავს განსხვავებას მეთოდის გადაფარვასა და გადატვირთვას შორის C-ში.
რა არის გადაჭარბებული C-ში?
არსებობს კიდევ ერთი მნიშვნელოვანი კონცეფცია OOP-ში არის მემკვიდრეობა. ეს არის უკვე არსებული კლასის ატრიბუტებისა და მეთოდების გამოყენება. ეს აუმჯობესებს კოდის განმეორებით გამოყენებას. უკვე არსებული კლასი არის საბაზისო კლასი, ხოლო ახალი კლასი ცნობილია როგორც მიღებული კლასი. პოლიმორფიზმის გადაფარვისას უნდა არსებობდეს საბაზისო კლასი და წარმოებული კლასი. გადაჭარბებული მეთოდის ზარის დაკავშირება განმარტებასთან ხდება გაშვების დროს. მაგალითი ასეთია.
სურათი 01: C პროგრამა გადაფარვით
ზემოხსენებული პროგრამის მიხედვით, კლასი Shape არის საბაზისო კლასი და შეიცავს ჩვენების მეთოდს. კლასი Rectangle და Triangle არის მიღებული კლასები. ამ წარმოებულ კლასებს ასევე აქვთ იგივე მეთოდის ჩვენება საკუთარი განხორციელებით.
პირველ რიგში, იქმნება საცნობარო ცვლადი obj. ის მიუთითებს Shape ობიექტზე. ასე რომ, Shape კლასის ჩვენების მეთოდი შესრულდება. შემდეგ, საცნობარო ცვლადი მიუთითებს Rectangle ობიექტზე. ასე რომ, Rectangle კლასის ჩვენების მეთოდი შესრულდება. და ბოლოს, საცნობარო ცვლადი მიუთითებს სამკუთხედის ობიექტზე. ასე რომ, Triangle კლასის ჩვენების მეთოდი შესრულდება. საბაზისო კლასის ჩვენების მეთოდი უგულებელყოფილია მიღებული კლასების ჩვენების მეთოდებით.
გაშვების მეთოდი წყდება გაშვების დროს. Shape კლასი იწერება "ვირტუალური" საკვანძო სიტყვით. მართკუთხედის და სამკუთხედის კლასები იწერება "გადალახვის" საკვანძო სიტყვით. თუ ეს საკვანძო სიტყვები არ გამოიყენება, გამომავალი დაბეჭდავს Shape კლასის ჩვენების მეთოდის შინაარსს ყველასთვის.
რა არის გადატვირთვა C-ში?
გადატვირთვისას მრავალ მეთოდს აქვს იგივე სახელი, მაგრამ განსხვავებული პარამეტრებით. პარამეტრები შეიძლება იყოს სხვადასხვა ტიპის. მეთოდებს ასევე შეიძლება ჰქონდეთ განსხვავებული რაოდენობის პარამეტრები.მეთოდის გადატვირთვა ხდება იმავე კლასში. გადატვირთული მეთოდების დაკავშირება განმარტებასთან ხდება კომპილაციის დროს. იხილეთ ქვემოთ C პროგრამა.
სურათი 02: C პროგრამა გადატვირთვით
ზემოხსენებული პროგრამის მიხედვით, A კლასს აქვს ორი იგივე სახელის მეთოდი, რომელსაც ეწოდება ჯამი. მათ აქვთ სხვადასხვა ტიპის პარამეტრები. მთავარ პროგრამაში იქმნება A-ს ობიექტი. ჯამი (2, 3) გამოიძახებს ჯამის მეთოდს მთელი რიცხვებით. ჯამი (5.1, 7.94) გამოიძახებს ჯამის მეთოდს ორმაგი მნიშვნელობებით. ორივე მეთოდს აქვს იგივე სახელი და პარამეტრის იგივე რაოდენობა. მაგრამ პარამეტრების ტიპები განსხვავებულია. საჭირო მეთოდს შესაბამისად უწოდებენ. გადატვირთვა ასევე შეიძლება მოხდეს, თუ მეთოდის სახელები და პარამეტრების ტიპები იგივეა, მაგრამ პარამეტრების რაოდენობა განსხვავებულია.
რა მსგავსებაა გადატვირთვასა და გადატვირთვას შორის C-ში?
C-ში გადატვირთვაც და გადატვირთვაც პოლიმორფიზმის ტიპებია
რა განსხვავებაა C-ში გადატვირთვასა და გადატვირთვას შორის?
გადატვირთვა vs გადატვირთვა C-ში |
|
გადალახვა C-ში არის კონკრეტული იმპლემენტაციის უზრუნველყოფა მიღებული კლასის მეთოდში იმ მეთოდისთვის, რომელიც უკვე არსებობს საბაზო კლასში. | C-ში გადატვირთვა არის მრავალი მეთოდის შექმნა ერთი და იგივე სახელით სხვადასხვა განხორციელებით. |
პარამეტრები | |
C Overriding-ში, მეთოდებს აქვთ იგივე სახელი, პარამეტრის ტიპები და პარამეტრის იგივე რაოდენობა. | C გადატვირთვაში, მეთოდებს აქვთ იგივე სახელი, მაგრამ განსხვავებული რაოდენობის პარამეტრები ან სხვადასხვა ტიპის პარამეტრები. |
შემთხვევა | |
C-ში გადაფარვა ხდება საბაზისო კლასში და მიღებული კლასის ფარგლებში. | C-ში გადატვირთვა ხდება იმავე კლასში. |
სავალდებულო დრო | |
გადაღებული მეთოდის ზარის დაკავშირება მის განმარტებასთან ხდება გაშვების დროს. | გადატვირთული მეთოდის ზარის დაკავშირება მის განმარტებასთან ხდება კომპილაციის დროს. |
სინონიმები | |
გადალახვას ეწოდება გაშვების დროის პოლიმორფიზმი, დინამიური პოლიმორფიზმი ან გვიან შეკავშირება. | გადატვირთვას ეწოდება კომპილაციის დროის პოლიმორფიზმი, სტატიკური პოლიმორფიზმი ან ადრეული შეკვრა. |
რეზიუმე – გადატვირთვა vs გადატვირთვა C-ში
გადატვირთვა და გადატვირთვა პოლიმორფიზმის ორი ტიპია. C-ში გადატვირთვასა და გადატვირთვას შორის განსხვავება იმაში მდგომარეობს, რომ გადატვირთული მეთოდის ზარის მიბმა მის განსაზღვრებაზე ხდება გაშვების დროს, ხოლო გადატვირთული მეთოდის ზარის მიბმა მის განმარტებასთან ხდება კომპილაციის დროს.