Kwa nini urithi wa Multiple unasaidiwa katika C++ lakini sio kwenye Java?
Kwa nini urithi wa Multiple unasaidiwa katika C++ lakini sio kwenye Java?

Video: Kwa nini urithi wa Multiple unasaidiwa katika C++ lakini sio kwenye Java?

Video: Kwa nini urithi wa Multiple unasaidiwa katika C++ lakini sio kwenye Java?
Video: Android 101 от Фреда Виджайи 2024, Mei
Anonim

C++ , Lisp ya kawaida na lugha zingine chache inasaidia urithi nyingi wakati java haifanyi hivyo msaada hiyo. Java hairuhusu urithi nyingi ili kuepusha utata unaosababishwa nayo. Mojawapo ya mfano wa shida kama hiyo ni shida ya almasi inayotokea ndani urithi nyingi.

Ipasavyo, kwa nini urithi wa Multiple hautumiki katika Java?

Java inasaidia urithi nyingi kupitia violesura pekee. Darasa linaweza kutekeleza idadi yoyote ya miingiliano lakini linaweza kupanua darasa moja tu. Urithi mwingi ni sivyo kuungwa mkono kwa sababu husababisha shida mbaya ya almasi. Wewe usipate utendakazi wowote kutoka kwa kiolesura.

Pia, tatizo ni nini Diamond katika kurithi nyingi? The “ tatizo la almasi ” ni utata unaoweza kujitokeza kama tokeo la kuruhusu urithi nyingi . Ni jambo zito tatizo kwa lugha (kama C++) zinazoruhusu urithi nyingi wa jimbo. Katika Java, hata hivyo, urithi nyingi hairuhusiwi kwa madarasa, kwa violesura pekee, na haya hayana hali.

Vivyo hivyo, watu huuliza, kwa nini C++ inasaidia urithi mwingi lakini C # haifanyi hivyo?

Urithi mwingi katika C# C# haitumii urithi mwingi , kwa sababu walifikiria kuongeza urithi nyingi aliongeza utata mwingi sana C# huku ukitoa faida kidogo sana. Katika C# , madarasa yanaruhusiwa tu kurithi kutoka kwa darasa la mzazi mmoja, ambalo linaitwa single urithi.

Je, C++ inasaidiaje urithi mwingi?

Tofauti na lugha zingine nyingi za programu zinazoelekezwa na kitu, C++ inaruhusu urithi nyingi . Urithi mwingi inaruhusu darasa la watoto kurithi kutoka zaidi ya darasa moja la wazazi. Madarasa ya Wanyama na Reptile kurithi kutoka humo. Darasa la Wanyama pekee ndilo linalobatilisha njia breathe().