Varför stöds multipla arv i C++ men inte i Java?
Varför stöds multipla arv i C++ men inte i Java?

Video: Varför stöds multipla arv i C++ men inte i Java?

Video: Varför stöds multipla arv i C++ men inte i Java?
Video: The HARDEST part about programming 🤦‍♂️ #code #programming #technology #tech #software #developer 2024, Maj
Anonim

C++ , Vanlig lisp och få andra språk stöder multipelt arv medan java inte Stöd den. Java tillåter inte multipelt arv för att undvika den oklarhet som den orsakar. Ett av exemplen på ett sådant problem är diamantproblemet som uppstår i multipelt arv.

Följaktligen, varför stöds inte multipla arv i Java?

Java stödjer multipelt arv endast via gränssnitt. En klass kan implementera valfritt antal gränssnitt men kan bara utöka en klass. Multipelt arv är inte stöds eftersom det leder till dödliga diamantproblem. Du får ingen funktionalitet från gränssnittet.

Dessutom, vad är Diamond-problemet vid multipelt arv? den diamantproblem ” är en oklarhet som kan uppstå som en konsekvens av att tillåta multipelt arv . Det är ett allvarligt problem för språk (som C++) som tillåter multipelt arv av staten. I Java däremot multipelt arv är inte tillåtet för klasser, endast för gränssnitt, och dessa innehåller inte tillstånd.

På samma sätt frågar folk, varför stöder C++ multipelt arv men inte C#?

Multipelt arv i C# C# stöder inte multipelt arv , eftersom de resonerade att lägga till multipelt arv lagt till för mycket komplexitet C# samtidigt som det ger för lite nytta. I C# , klasserna får bara göra det ärva från en ensamförälderklass, som kallas singel arv.

Hur stöder C++ multipelt arv?

Till skillnad från många andra objektorienterade programmeringsspråk, C++ tillåter multipelt arv . Multipelt arv tillåter en barnklass att ärva från mer än en föräldraklass. Djur- och reptilklasserna ärva från det. Endast klassen Animal åsidosätter metoden breathe().