რატომ არ არის მხარდაჭერილი მრავალჯერადი მემკვიდრეობა ჯავაში, ახსენით მაგალითით?
რატომ არ არის მხარდაჭერილი მრავალჯერადი მემკვიდრეობა ჯავაში, ახსენით მაგალითით?

ვიდეო: რატომ არ არის მხარდაჭერილი მრავალჯერადი მემკვიდრეობა ჯავაში, ახსენით მაგალითით?

ვიდეო: რატომ არ არის მხარდაჭერილი მრავალჯერადი მემკვიდრეობა ჯავაში, ახსენით მაგალითით?
ვიდეო: Why Java does not support multiple Inheritance ? 2024, ნოემბერი
Anonim

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

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

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

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

ამ გზით, რა არის მრავალჯერადი მემკვიდრეობა, მხარს უჭერს მას ჯავა?

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

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

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

გირჩევთ: