Bakit sinusuportahan ang Maramihang pamana sa C++ ngunit hindi sa Java?
Bakit sinusuportahan ang Maramihang pamana sa C++ ngunit hindi sa Java?

Video: Bakit sinusuportahan ang Maramihang pamana sa C++ ngunit hindi sa Java?

Video: Bakit sinusuportahan ang Maramihang pamana sa C++ ngunit hindi sa Java?
Video: Windows Event and Logging for the IT Pro 2024, Mayo
Anonim

C++ , Karaniwang lisp at ilang iba pang mga wika sumusuporta sa maramihang pamana habang java hindi suporta ito. Java hindi pinapayagan maramihang mana upang maiwasan ang kalabuan na dulot nito. Ang isa sa mga halimbawa ng naturang problema ay ang problema sa brilyante na nangyayari sa maramihang mana.

Alinsunod dito, bakit hindi sinusuportahan sa Java ang Multiple inheritance?

Java sumusuporta maramihang mana sa pamamagitan lamang ng mga interface. Ang isang klase ay maaaring magpatupad ng anumang bilang ng mga interface ngunit maaari lamang mag-extend ng isang klase. Maramihang mana ay hindi suportado dahil humahantong ito sa nakamamatay na problema sa brilyante. Ikaw huwag makakuha ng anumang pag-andar mula sa interface.

Gayundin, ano ang problema ng Diamond sa maramihang mana? Ang problema ng brilyante ” ay isang kalabuan na maaaring lumitaw bilang resulta ng pagpayag maramihang mana . Ito ay isang seryoso problema para sa mga wika (tulad ng C++) na nagbibigay-daan para sa maramihang mana ng estado. Sa Java, gayunpaman, maramihang mana ay hindi pinapayagan para sa mga klase, para lamang sa mga interface, at ang mga ito ay hindi naglalaman ng estado.

Gayundin, nagtatanong ang mga tao, bakit sinusuportahan ng C++ ang maramihang pamana ngunit hindi ang C#?

Maramihang mana sa Hindi sinusuportahan ng C# C# ang maramihang pamana , dahil ikinatuwiran nila na ang pagdaragdag maramihang mana nagdagdag ng masyadong kumplikado sa C# habang nagbibigay ng masyadong maliit na benepisyo. Sa C# , ang mga klase ay pinapayagan lamang magmana mula sa isang solong magulang na klase, na tinatawag na single mana.

Paano sinusuportahan ng C++ ang maramihang pamana?

Hindi tulad ng maraming iba pang object-oriented programming language, C++ nagpapahintulot maramihang mana . Maramihang mana nagbibigay-daan sa isang klase ng bata na magmana mula sa higit sa isang klase ng magulang. Ang mga klase ng Hayop at Reptile magmana mula dito. Tanging ang klase ng Animal ang nag-o-override sa pamamaraan breathe().