ძირითადი განსხვავება – გადატვირთვა ჯავაში გადატვირთვის წინააღმდეგ
ობიექტზე ორიენტირებული პროგრამირება (OOP) არის ძირითადი პარადიგმა პროგრამული უზრუნველყოფის შემუშავებაში. ეს არის კლასებისა და ობიექტების გამოყენებით პროგრამის შემუშავების მეთოდოლოგია. კლასი არის გეგმა. იგი აღწერს რა უნდა შეიცავდეს ობიექტს. ის განსაზღვრავს თვისებებს ან ატრიბუტებს და მეთოდებს, საიდანაც უნდა შედგებოდეს ობიექტი. ამრიგად, ობიექტი არის კლასის მაგალითი. ეს ობიექტები ურთიერთობენ სხვა ობიექტებთან. OOP-ის ერთ-ერთი მთავარი კონცეფციაა პოლიმორფიზმი. ეს არის ობიექტის უნარი, მოიქცეს მრავალი გზით. პოლიმორფიზმი იყოფა ორ ნაწილად, რომლებიც გადატვირთულია და გადაჭარბებული.ეს სტატია განიხილავს ამ ორს შორის განსხვავებას Java-ში. Java-ში გადატვირთვასა და გადატვირთვას შორის მთავარი განსხვავება ისაა, რომ გადატვირთვა არის შესაძლებლობა შექმნას ერთი და იგივე სახელის მრავალი მეთოდი სხვადასხვა იმპლემენტაციით, ხოლო Overriding არის იმპლემენტაციის უზრუნველყოფა ქვეკლასის მეთოდისთვის, რომელიც უკვე არსებობს სუპერკლასში.
რა არის გადატვირთვა ჯავაში?
გადატვირთვა არის ერთიდაიმავე სახელის მრავალი მეთოდის შექმნის შესაძლებლობა სხვადასხვა განხორციელებით. იხილეთ ქვემოთ Java კოდი.
სურათი 01: Java პროგრამა, რომელიც ხსნის გადატვირთვას სხვადასხვა რაოდენობის არგუმენტებით
ზემოხსენებული პროგრამის მიხედვით, კლასი A შეიცავს ორ მეთოდს ერთი და იგივე სახელით. ჯამის პირველ მეთოდს აქვს ორი პარამეტრი. მეორე ჯამის მეთოდს აქვს სამი პარამეტრი. A ტიპის ობიექტის შექმნისას და sum(2, 3)-ის გამოძახებისას გამოიძახებს sum მეთოდს ორი პარამეტრით, რომლებიც არის sum(int a, int b) და აბრუნებს 5-ს. A ტიპის ობიექტის შექმნისას და sum(2) გამოძახებისას., 3, 4), ის გამოიძახებს სხვა ჯამის მეთოდს სამი პარამეტრით, რომელიც არის ჯამი (int a, int b, int c) და აბრუნებს 9.
მეთოდის სახელი იგივეა, მაგრამ პარამეტრების რაოდენობა განსხვავებულია. შეიძლება აღინიშნოს, რომ ერთი და იგივე ობიექტი განსხვავებულად იქცევა. ეს კონცეფცია ცნობილია, როგორც გადატვირთვა. მას ასევე მოიხსენიებენ, როგორც სტატიკური შეკვრას ან დროის პოლიმორფიზმის შედგენას.
ასევე შეიძლება იყოს გადატვირთული სხვადასხვა ტიპის მონაცემებით. იხილეთ ქვემოთ Java კოდი.
სურათი 02: Java პროგრამა, რომელიც ხსნის გადატვირთვას სხვადასხვა რაოდენობის არგუმენტებით
ზემოხსენებული პროგრამის მიხედვით, კლასი A შედგება ორი ერთი და იგივე სახელის მეთოდისგან. sum(int a, int b) მეთოდი იღებს ორ მთელ რიცხვს. ჯამი (ორმაგი ორმაგი b) იღებს ორ ორმაგ მნიშვნელობას. A ტიპის ობიექტის შექმნისას და sum(2, 3) გამოძახებისას ის გამოიძახებს sum(int a, int b) და დააბრუნებს მნიშვნელობას 5. sum (3.4, 5.6) გამოძახებისას გამოიძახებს sum (double a double. ბ) და დააბრუნეთ მნიშვნელობა 9.0. ამ მაგალითში მეთოდებს აქვთ იგივე სახელი, მაგრამ განსხვავებული ტიპის ცვლადები. ეს ასევე გადატვირთულია.
რა არის Overriding Java-ში?
Java-ში შესაძლებელია ქვეკლასების აგება უკვე არსებული კლასებით.ახალი კლასის თავიდან შექმნის ნაცვლად, შესაძლებელია უკვე არსებული კლასის თვისებები და მეთოდების გამოყენება. არსებული კლასი არის სუპერკლასი, ხოლო მიღებული კლასი არის ქვეკლასი. როდესაც ქვეკლასი უზრუნველყოფს მეთოდის იმპლემენტაციას, რომელიც უკვე სუპერკლასშია, იგი ცნობილია როგორც overriding. იხილეთ ქვემოთ მოცემული Java პროგრამა.
სურათი 03: Java პროგრამა გადაფარვისთვის
ზემოხსენებული პროგრამის მიხედვით, A კლასს აქვს მეთოდის ჩვენება(). B კლასი ვრცელდება A კლასიდან, ამიტომ A კლასის თვისებები და მეთოდები ხელმისაწვდომია B კლასისთვის. B კლასს აქვს მეთოდი display() კონკრეტული განხორციელებით. A ტიპის ობიექტის შექმნისას და ჩვენების მეთოდის გამოძახებისას, ის მისცემს გამომავალს B. მიუხედავად იმისა, რომ A კლასს აქვს ჩვენების მეთოდი, ის აკრძალულია იყოს B კლასის ჩვენების მეთოდი. ქვეკლასი ახორციელებს მეთოდს, რომელიც უკვე არსებობს სუპერკლასში.
ეს კონცეფცია არის პოლიმორფიზმის ტიპი და ცნობილია, როგორც უმთავრესი. მას ასევე უწოდებენ გვიან შეკვრას, დინამიურ შეკვრას, გაშვების დროის პოლიმორფიზმს.
რა მსგავსებაა გადატვირთვასა და გადატვირთვას შორის Java-ში?
- ორივე პოლიმორფიზმის სახეობაა.
- გადატვირთვაში და გადატვირთვაში მეთოდებს აქვთ იგივე სახელი.
რა განსხვავებაა Java-ში გადატვირთვასა და გადატვირთვას შორის?
გადატვირთვა vs გადატვირთვა ჯავაში |
|
Java-ში გადატვირთვა არის ერთიდაიმავე სახელის მრავალი მეთოდის შექმნის შესაძლებლობა სხვადასხვა დანერგვით. | Java-ში გადაფარვა უზრუნველყოფს სპეციფიკურ იმპლემენტაციას ქვეკლასში მეთოდისთვის, რომელიც უკვე არსებობს სუპერკლასში. |
პარამეტრები | |
გადატვირთვისას მეთოდებს აქვთ იგივე სახელი, მაგრამ განსხვავებული რაოდენობის პარამეტრები ან სხვადასხვა ტიპის პარამეტრები. | გადაფარვისას, მეთოდებს აქვთ იგივე სახელი და პარამეტრები უნდა იყოს იგივე. |
თემები | |
გადატვირთვა ხდება კლასში. | გადალახვა ხდება ორ კლასში, რომლებსაც აქვთ მემკვიდრეობითი ურთიერთობა. |
სინონიმები | |
გადატვირთვას ეწოდება შედგენილი დროის პოლიმორფიზმი. | გადალახვას ეწოდება გაშვების დროის პოლიმორფიზმი. |
რეზიუმე – გადატვირთვა vs გადატვირთვა ჯავაში
პოლიმორფიზმი არის მთავარი კონცეფცია ობიექტზე ორიენტირებულ პროგრამირებაში. ის უზრუნველყოფს ობიექტს მრავალი გზით ქცევის შესაძლებლობას. ეს შეიძლება იყოს გადატვირთვა ან გადატვირთვა. გადატვირთვა არის კომპილ-დროის პოლიმორფიზმი, ხოლო უმთავრესი არის გაშვების დროის პოლიმორფიზმი. ისინი სასარგებლოა პროგრამული აპლიკაციების შემუშავებაში. გადატვირთვასა და გადატვირთვას შორის განსხვავება იმაში მდგომარეობს, რომ გადატვირთვა არის ერთი და იმავე სახელის მრავალი მეთოდის შექმნის შესაძლებლობა სხვადასხვა განხორციელებით, ხოლო Overriding უზრუნველყოფს სპეციფიკურ იმპლემენტაციას ქვეკლასის მეთოდში იმ მეთოდისთვის, რომელიც უკვე არსებობს სუპერკლასში. ჯავაში შესაძლებელია გადატვირთვაც და გადატვირთვაც.
ჩამოტვირთეთ PDF Overloading vs Overriding Java-ში
შეგიძლიათ ჩამოტვირთოთ ამ სტატიის PDF ვერსია და გამოიყენოთ იგი ოფლაინ მიზნებისთვის ციტირების შენიშვნის მიხედვით. გთხოვთ ჩამოტვირთოთ PDF ვერსია აქ სხვაობა გადატვირთვასა და გადატვირთვას შორის Java-ში