რატომ არ შეიძლება მრავალმხრივი მემკვიდრეობა (Multi Inheritance) ჯავაში

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

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

ვთქვათ გვაქვს GrandParent კლასი , რომელსაც აქვს მეთოდი method () . ასევე ამ კლასს ჰყავს ორი მემკვიდრე კლასი : ParentA და ParentB . ორივე მემკვიდრე კლასს აქვს იგივე მეთოდი method () , ოღონდ გადაფარული. ასევე ჩავთვალოთ რომ გვაქვს მესამე კლასი Child , რომელიც არის ერთდროულად ParentA და ParentB კლასების მემკვიდრე ( შენიშვნა : ეს უბრალოდ დაშვებაა , ჯავაში ეს არ შეიძლება) . Child კლასს არ  აქვს არცერთი მეთოდი ისმის კითხვა ? როდესაც ვქმნით Child კლასის ობიექტს და ვიძახებთ მეთოდ method ()-ს რომელი მშობელი კლასის ParentA-სი თუ ParentB-ს მეთოდი გამოიძახება ? !  სწორედ ამიტომ, რომ არის გაურკვევლობა, თუ რომელი მშობლის მეთოდის გამოძახება მოხდება, ჯავას შემქმნელებმა გადაწყვიტეს, რომ ჯავაში არ იყოს მრავალმხრივი მემკვიდრეობა.

Inheritance

Leave a Reply / უპასუხე

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / შეცვლა )

Twitter picture

You are commenting using your Twitter account. Log Out / შეცვლა )

Facebook photo

You are commenting using your Facebook account. Log Out / შეცვლა )

Google+ photo

You are commenting using your Google+ account. Log Out / შეცვლა )

Connecting to %s