რატომ არ არის შესაძლებელი მრავალჯერადი მემკვიდრეობა C#-ში?
რატომ არ არის შესაძლებელი მრავალჯერადი მემკვიდრეობა C#-ში?

ვიდეო: რატომ არ არის შესაძლებელი მრავალჯერადი მემკვიდრეობა C#-ში?

ვიდეო: რატომ არ არის შესაძლებელი მრავალჯერადი მემკვიდრეობა C#-ში?
ვიდეო: ტიტანიკის საიდუმლო: როგორ ვერ შეამჩნიეს აისბერგი?! ყველაზე დეტალური ამბავი! 2024, დეკემბერი
Anonim

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

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

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

შეიძლება ასევე ვიკითხოთ, შეგვიძლია თუ არა მემკვიდრეობით მივიღოთ მრავალი ინტერფეისი C#-ში? ინტერფეისები ჰგავს შეთანხმებებს ან „კონტრაქტებს“რა კლასის შესახებ შეუძლია გააკეთოს . კლასები შეუძლია აქვს მრავალი ინტერფეისი , მაგრამ კლასები არ შეიძლება მემკვიდრეობით მრავალჯერადი კლასები. კლასები მემკვიდრეობით მეტიდან ერთი კლასი ცნობილია როგორც მრავალჯერადი - მემკვიდრეობა . C# აკეთებს არ დაუშვებს მრავალჯერადი - მემკვიდრეობა.

აქ, რა არის Diamond პრობლემა მრავალჯერადი მემკვიდრეობით C#-ში?

ალმასის პრობლემა ”ეს არის გაურკვევლობა, რომელიც ჩნდება, როდესაც ორი კლასი B და C მემკვიდრეობით A-დან და D კლასიდან მემკვიდრეობით იღებს როგორც B-დან, ასევე C-დან. თუ A-ში არის მეთოდი, რომელიც B-მ და C-მ გააუქმეს და D არ არღვევს მას, მაშინ მეთოდის რომელი კლასია D მემკვიდრეობით : B-ის, თუ C-ის?

რა არის მრავალჯერადი მემკვიდრეობა C#-ში მაგალითად?

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

გირჩევთ: