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

Სარჩევი:

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

ვიდეო: სხვაობა მრავალსა და მრავალდონიან მემკვიდრეობას შორის

ვიდეო: სხვაობა მრავალსა და მრავალდონიან მემკვიდრეობას შორის
ვიდეო: C# - Inheritance | Simple, Multilevel, Multiple and Hierarchical Inheritance 2024, ივლისი
Anonim

ძირითადი განსხვავება – მრავალდონიანი მემკვიდრეობის წინააღმდეგ

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

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

მრავალჯერადი მემკვიდრეობა არის, როდესაც კლასი იღებს ერთზე მეტ საბაზო კლასს.

განსხვავება მრავალსა და მრავალდონიან მემკვიდრეობას შორის
განსხვავება მრავალსა და მრავალდონიან მემკვიდრეობას შორის

სურათი 01: მრავალჯერადი მემკვიდრეობა

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

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

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

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

ძირითადი განსხვავება მრავალსა და მრავალდონიან მემკვიდრეობას შორის
ძირითადი განსხვავება მრავალსა და მრავალდონიან მემკვიდრეობას შორის

სურათი 02: მრავალდონიანი მემკვიდრეობა

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

პროგრამა, რომელიც ახორციელებს მრავალ დონის მემკვიდრეობას, შემდეგია. პროგრამა დაწერილია ჯავის გამოყენებით.

სხვაობა მრავალსა და მრავალდონიან მემკვიდრეობას შორის_სურათი 03
სხვაობა მრავალსა და მრავალდონიან მემკვიდრეობას შორის_სურათი 03

სურათი 03: პროგრამა, რომელიც ახორციელებს მრავალ დონის მემკვიდრეობას

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

რა მსგავსებაა მრავალსაფეხურიან მემკვიდრეობას შორის?

ორივე მემკვიდრეობის ტიპია

რა განსხვავებაა მრავალსა და მრავალდონიან მემკვიდრეობას შორის?

მრავალჯერადი მემკვიდრეობა მრავალდონიანი მემკვიდრეობის წინააღმდეგ

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

შეჯამება – მრავალდონიანი მემკვიდრეობის წინააღმდეგ

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

ჩამოტვირთეთ PDF Multiple vs Multilevel Inheritance

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

გირჩევთ: