Как виртуалното наследяване решава проблема с диамантите?
Как виртуалното наследяване решава проблема с диамантите?

Видео: Как виртуалното наследяване решава проблема с диамантите?

Видео: Как виртуалното наследяване решава проблема с диамантите?
Видео: What is Familial Dysautonomia? 2024, Може
Anonim

Виртуалното наследяване решава класическият Проблем с диамантите “. Той гарантира, че дъщерният клас получава само един екземпляр от общия базов клас. С други думи, класът Snake ще имат само един екземпляр на класа LivingThing. Класовете Animal и Reptile споделят този случай.

В тази връзка какъв е проблемът с диамантите при наследяването?

„ проблем с диамантите ” е неяснота, която може да възникне в резултат на допускане на множество наследство . Това е сериозно проблем за езици (като C++), които позволяват множество наследство на държавата. InJava обаче множество наследство не е разрешен форкласове, само за интерфейси и те не съдържат състояние.

Впоследствие въпросът е как виртуалният базов клас помага при наследяването? Виртуални базови класове предлагат начин за спестяване на място и избягване на неясноти клас йерархии, които използват множествено наследяване. Когато базов клас е посочено като a виртуална база , може да действа като косвен база повече от веднъж без дублиране на членовете на данните.

Знайте също, какво е виртуално публично наследяване?

Виртуално наследяване е C++ техника, която осигурява само едно копие на променливите-членове на базовия клас наследени от класове, получени от внуци. Тази функция е най-полезна за множество наследство , тъй като прави виртуален основа общ подобект за производния клас и всички класове, които са получени от него.

Как Interface решава проблема с диамантите?

Как с помощта на интерфейс в Java реши на проблем с диамантите ? Следователно, ако две интерфейси има същия подпис на метода и клас иска да наследи (реализира в Java) от тези два интерфейси , няма "тяло на метода" за наследяване, следователно " диамант наследство" проблем се избягва.

Препоръчано: