სხვაობა პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში

Სარჩევი:

სხვაობა პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში
სხვაობა პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში

ვიდეო: სხვაობა პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში

ვიდეო: სხვაობა პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში
ვიდეო: Inheritance vs Polymorphism | Inheritance and Polymorphism Differences in OOP 2024, ნოემბერი
Anonim

ძირითადი განსხვავება - პოლიმორფიზმი და მემკვიდრეობა OOP-ში

ობიექტზე ორიენტირებული პროგრამირება (OOP) ჩვეულებრივ გამოიყენება პროგრამული უზრუნველყოფის შესაქმნელად. ბევრი პროგრამირების ენა მხარს უჭერს ობიექტზე ორიენტირებულ პროგრამირებას. ობიექტზე ორიენტირებული პროგრამირება არის კლასებისა და ობიექტების გამოყენებით პროგრამის შემუშავების მეთოდოლოგია. კლასი OOP-ში არის ობიექტის შექმნის გეგმა. კლასს აქვს თვისებები და მეთოდები. ობიექტი არის კლასის მაგალითი. OOP შეიცავს ოთხ საყრდენს, როგორიცაა მემკვიდრეობა, პოლიმორფიზმი, აბსტრაქცია და ინკაფსულაცია. ეს სტატია განიხილავს განსხვავებას პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში. OOP-ში პოლიმორფიზმსა და მემკვიდრეობას შორის მთავარი განსხვავებაა ის, რომ პოლიმორფიზმი არის ობიექტის უნარი, მოიქცეს მრავალი გზით, ხოლო მემკვიდრეობა არის ახალი კლასის შექმნა არსებული კლასის თვისებებისა და მეთოდების გამოყენებით.

რა არის პოლიმორფიზმი OOP-ში?

პოლიმორფიზმი არის მრავალი ფორმის მითითება. ერთ ობიექტს შეიძლება ჰქონდეს მრავალი ქცევა. პოლიმორფიზმი შეიძლება დაიყოს ორ კატეგორიად. ისინი გადატვირთავს და აჭარბებს.

გადატვირთვა

იხილეთ ქვემოთ მოცემული პროგრამა Java-ში.

განსხვავება პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში
განსხვავება პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში

სურათი 01: გადატვირთვა

ზემოხსენებული პროგრამის მიხედვით იქმნება A ტიპის ობიექტი. obj.sum(); ის მისცემს გამოსავალს, რომელიც დაკავშირებულია მეთოდთან sum(). obj.sum(2, 3) გამოძახებისას; ის მისცემს გამომავალს, რომელიც დაკავშირებულია ჯამთან (int a, int b). შეიძლება აღინიშნოს, რომ ერთსა და იმავე ობიექტს აქვს განსხვავებული ქცევა სიტუაციიდან გამომდინარე. როდესაც არსებობს მრავალი მეთოდი ერთი და იგივე სახელით, მაგრამ განსხვავებული პარამეტრებით, ეს ცნობილია, როგორც გადატვირთვა.იგი ასევე ცნობილია როგორც სტატიკური შებოჭვის ან შედგენის დროის პოლიმორფიზმი.

გადალახვა

სხვა ტიპის პოლიმორფიზმი უმთავრესია. იხილეთ ქვემოთ მოცემული პროგრამა Java-ზე დაწერილი.

განსხვავება პოლიმორფიზმსა და მემკვიდრეობას შორის OOP_სურათი 02
განსხვავება პოლიმორფიზმსა და მემკვიდრეობას შორის OOP_სურათი 02

სურათი 02: გადაფარვა

ზემოხსენებული პროგრამის მიხედვით, A კლასში არის მეთოდი display(). B კლასი ვრცელდება A კლასიდან. ამიტომ, A კლასში ყველა მეთოდი ხელმისაწვდომია B კლასის მიერ. ეს არის მემკვიდრეობითი. მემკვიდრეობის კონცეფცია მოგვიანებით იქნება აღწერილი.

B კლასს ასევე აქვს იგივე მეთოდი display(). A ტიპის ობიექტის შექმნისას და ჩვენების მეთოდის გამოძახებისას, გამომავალი მისცემს B. კლასის A ჩვენების მეთოდის გადაფარვა ხდება B კლასის ჩვენების მეთოდით. ასე რომ, გამომავალი არის B.

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

რა არის მემკვიდრეობა OOP-ში?

იხილეთ ქვემოთ მოცემული პროგრამა Java-ში.

ძირითადი განსხვავება პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში
ძირითადი განსხვავება პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში

სურათი 03: მემკვიდრეობის მაგალითი

ზემოხსენებული პროგრამის მიხედვით, A კლასს აქვს მეთოდი sum() და B კლასს აქვს მეთოდი sub().

A კლასის sum() მეთოდი შეიძლება გამოყენებულ იქნას B კლასში, extension საკვანძო სიტყვის გამოყენებით. არსებული კლასში თვისებებისა და მეთოდების ხელახლა გამოყენება ახალი კლასის შესაქმნელად ცნობილია როგორც მემკვიდრეობა. B კლასშიც კი არ არის sum() მეთოდი; ის მემკვიდრეობით არის მიღებული A კლასიდან. მემკვიდრეობა სასარგებლოა კოდის ხელახალი გამოყენებისთვის. უფრო ძველ კლასს ეწოდება საბაზო კლასი, სუპერკლასი ან მშობელი კლასი.გამოყვანილ კლასს ეწოდება ქვეკლასი ან შვილი კლასი.

მემკვიდრეობის სახეები

არსებობს სხვადასხვა სახის მემკვიდრეობა. ეს არის ერთ დონის მემკვიდრეობა, მრავალ დონის მემკვიდრეობა, მრავალჯერადი მემკვიდრეობა, იერარქიული მემკვიდრეობა და ჰიბრიდული მემკვიდრეობა.

ერთჯერადი მემკვიდრეობა

Single Inheritance-ში არის ერთი სუპერ კლასი და ერთი ქვეკლასი. თუ კლასი A არის სუპერ კლასი და კლასი B არის ქვეკლასი, A კლასის ყველა თვისება და მეთოდი ხელმისაწვდომია B კლასისთვის. არსებობს მხოლოდ ერთი დონე; ამიტომ მას უწოდებენ ერთ დონის მემკვიდრეობას.

მრავალდონიანი მემკვიდრეობა

მრავალსაფეხურიან მემკვიდრეობაში არსებობს კლასების სამი დონე. შუალედური კლასი მემკვიდრეობით იღებს სუპერკლასს. ქვეკლასი მემკვიდრეობით იღებს შუალედურ კლასს. თუ არსებობს სამი კლასი, როგორც A, B და C და A არის სუპერ კლასი და B არის შუალედური კლასი. შემდეგ B იღებს მემკვიდრეობას A-დან და C მემკვიდრეობით იღებს B-ს, ეს არის მრავალ დონის მემკვიდრეობა.

მრავალჯერადი მემკვიდრეობა

მრავალჯერადი მემკვიდრეობით, არის ბევრი სუპერ კლასი და ერთი ქვეკლასი. თუ არსებობს სამი სუპერკლასი სახელწოდებით A, B, C და D არის ქვეკლასი, მაშინ D კლასს შეუძლია მემკვიდრეობით მიიღოს A, B და C. მრავალჯერადი მემკვიდრეობა მხარდაჭერილია პროგრამირების ენაში C++. ის არ არის მხარდაჭერილი პროგრამირების ენებში, როგორიცაა Java ან C. ინტერფეისები გამოიყენება მრავალჯერადი მემკვიდრეობის დასანერგად ამ ენებში.

იერარქიული მემკვიდრეობა

თუ არსებობს კლასები, რომლებსაც უწოდებენ A სუპერ კლასებს და B, C არის ქვეკლასები, ამ ქვეკლასებს შეუძლიათ მემკვიდრეობით მიიღონ A კლასის თვისებები და მეთოდები. მემკვიდრეობის ასეთი ტიპი ცნობილია როგორც იერარქიული მემკვიდრეობა.

ჰიბრიდული მემკვიდრეობა

არსებობს კიდევ ერთი სპეციალური მემკვიდრეობის ტიპი, რომელიც ცნობილია როგორც ჰიბრიდული მემკვიდრეობა. ეს არის მრავალ დონის და მრავალმხრივი მემკვიდრეობის კომბინაცია. თუ A, B, C და D არის კლასები და B არის მემკვიდრეობით A-დან და D არის მემკვიდრეობით B და C-დან, მაშინ ეს არის ჰიბრიდული მემკვიდრეობა.

რა მსგავსებაა პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში?

ორივე ობიექტზე ორიენტირებული პროგრამირების კონცეფციაა

რა განსხვავებაა პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში?

პოლიმორფიზმი vs მემკვიდრეობა OOP-ში

პოლიმორფიზმი არის ობიექტის უნარი, მოიქცეს მრავალი გზით. მემკვიდრეობა არის ახალი კლასის შექმნა არსებული კლასის თვისებებისა და მეთოდების გამოყენებით.
გამოყენება
პოლიმორფიზმი გამოიყენება ობიექტებისთვის, რათა გამოიძახონ მეთოდების რომელი ფორმა შედგენის დროს და გაშვების დროს. მემკვიდრეობა გამოიყენება კოდის ხელახლა გამოყენებისთვის.
დანერგვა
პოლიმორფიზმი დანერგილია მეთოდებში. მემკვიდრეობა დანერგილია კლასებში.
კატეგორიები
პოლიმორფიზმი შეიძლება დაიყოს გადატვირთვად და ზედმეტად. მემკვიდრეობა შეიძლება დაიყოს ერთ დონის, მრავალდონიანი, იერარქიული, ჰიბრიდული და მრავალჯერადი მემკვიდრეობად.

შეჯამება - პოლიმორფიზმი და მემკვიდრეობა OOP-ში

პოლიმორფიზმი და მემკვიდრეობა არის ძირითადი ცნებები ობიექტზე ორიენტირებულ პროგრამირებაში. OOP-ში პოლიმორფიზმსა და მემკვიდრეობას შორის განსხვავება ისაა, რომ პოლიმორფიზმი არის საერთო ინტერფეისი მრავალი ფორმისთვის და მემკვიდრეობა არის ახალი კლასის შექმნა არსებული კლასის თვისებებისა და მეთოდების გამოყენებით. ორივე კონცეფცია ფართოდ გამოიყენება პროგრამული უზრუნველყოფის განვითარებაში.

ჩამოტვირთეთ PDF პოლიმორფიზმი და მემკვიდრეობა OOP-ში

შეგიძლიათ ჩამოტვირთოთ ამ სტატიის PDF ვერსია და გამოიყენოთ იგი ოფლაინ მიზნებისთვის ციტირების შენიშვნის მიხედვით. გთხოვთ გადმოწეროთ PDF ვერსია აქ განსხვავება პოლიმორფიზმსა და მემკვიდრეობას შორის OOP-ში

გირჩევთ: