მხარს უჭერს ჯავას მრავალჯერადი მემკვიდრეობა რატომ ან რატომ არა?
მხარს უჭერს ჯავას მრავალჯერადი მემკვიდრეობა რატომ ან რატომ არა?

ვიდეო: მხარს უჭერს ჯავას მრავალჯერადი მემკვიდრეობა რატომ ან რატომ არა?

ვიდეო: მხარს უჭერს ჯავას მრავალჯერადი მემკვიდრეობა რატომ ან რატომ არა?
ვიდეო: Java's Creators Rejected Multiple Inheritance - Here's Why 2024, სექტემბერი
Anonim

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

შესაბამისად, დაშვებულია თუ არა ჯავაში მრავალჯერადი მემკვიდრეობა?

C++, Common lisp და რამდენიმე სხვა ენების მხარდაჭერა მრავალჯერადი მემკვიდრეობა ხოლო ჯავა არ უჭერს მხარს. ჯავა არა მრავალჯერადი მემკვიდრეობის დაშვება რათა თავიდან ავიცილოთ მისგან გამოწვეული გაურკვევლობა. ასეთი პრობლემის ერთ-ერთი მაგალითია ალმასის პრობლემა, რომელიც გვხვდება მრავალჯერადი მემკვიდრეობა.

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

ასევე იცოდეთ რომელი მემკვიდრეობა არ არის მხარდაჭერილი ჯავის მიერ რატომ?

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

რატომ გამოიყენება მრავალჯერადი მემკვიდრეობა ინტერფეისში?

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

გირჩევთ: