webForumDet fria alternativet

Multipelt arv

Java

13 svar · 623 visningar · startad av ps

Medlem sedan juni 2000841 inlägg
Frågan#1

Har undrat ett tag nu varför det inte går att ärva från flera klasser i Java.

Nån som har ett bra svar på det?

det funkar i C++ och är inte helt fel.

Java är iofs ett mer strukturerat språk, kanske har med det att göra?

r
stavfel

------------------
ps » Email » URL

[Redigerat av ps den 24 okt 2001]

Medlem sedan sep. 20001 124 inlägg
#2

Av samma anledning som du inte har tillgång till klasser i C. Det finns helt enkelt inte inbyggt i språket.

------------------
Hollowhead - levererar din dagliga dos av nyttig hårdrock!

Medlem sedan maj 20018 027 inlägg
#3

Om jag har förstått saken rätt, har de medvetet avstått från den möjligheten för att göra språket enkelt. Om man inte tänker sig för, går det att krångla till allt ganska ordentligt med multipelt arv.

Medlem sedan apr. 20007 588 inlägg
#4

Med multipelt arv kommer problem med ett allt för komplicerat språk med komplexa och ineffektiva implementationer utan att det egentligen tillför något av riktigt värde. Det var anledningen till varför det inte infördes i Java, ungefär som med operatoröverlagring, det är en snygg finess, men det orsakar långt mer problem och buggig/komplex kod än det ger fördelar.

I Java har du interfaces att tillgå, inte riktigt samma sak men de ger nästan lika mycket som multipelt arv utan att ha dess nackdelar.

[r] Tillägg:
En av de huvudsakliga designideérna med Java var att göra ett språk som tog fasta på alla bra saker i C++ men som rensade bort sånt som ofta orsakar problem, som t.ex multipelt arv.
------------------
det finns ingen.info tillgänglig.

"inside every human being there's an american trying to get out".

[Redigerat av sgtpepper den 24 okt 2001]

Medlem sedan sep. 2001961 inlägg
#5

Och med en bra och välstrukturerad systemdesign behövs inte multipla arv.

/Lime

------------------
Praeterea conseo microsoftenem esse delendam.
- modernt latinskt ordspråk

Medlem sedan sep. 200128 inlägg
#6

Multipla arv och arv överhuvudtaget är lite överskattat.

Istället för att ärva en implementation så brukar jag använda mig av interfaces och i den klass som skulle varit en barn klass har jag istället en instans av base klassen som jag jobbar med.

bara mina två pesetas.

Medlem sedan juni 2000841 inlägg
#7

Chainsaw: Jo jag vet att det inte är inbyggt i språket.. bara undrar varför.

Så anledningen är att man inte ska trassla in sig..
Men varför inte låta användaren avgöra?

------------------
ps » Email » URL

Medlem sedan juni 20008 205 inlägg
#8

Därför att användare per definition är korkade och gör fel ;)

Medlem sedan juli 20011 304 inlägg
#9

Det kan ju tilläggas att funktionaliteten av ett multipelt arv i C++ är kompilatorberoende. Om det finns 2 funktioner med samma namn i de två klasserna man ärver från avgör kompilatorn vilken som ska gälla.

Interfacen i Java tvingar en att implementera dem rätt. Det är ju en av grundtankarna i Java att göra det hela plattformsoberoende, så det är ganska logiskt att det inte finns :)

------------------
The computer is mightier than the pen, the sword, and usually, the programmer.

Medlem sedan juli 2001228 inlägg
#10

Det är väl så också att det blir automatiskt en "renare" objekt orientering.

Bil ärver av Fordon, fine! Men ärver den av Växt också kan logiken bli en smula bucklig.

phlonk

Medlem sedan nov. 2000199 inlägg
#11

En viktig aspekt i utformingen av Java var att se till att programmeraren inte kan göra fel. T.ex. ta bort pekarna och multipelt arv.

Genom att minska programvaru-felen så ökar programmerarnas effektivitet. Dvs det minskar tiden man behöver tillbringa med att försöka hitta komplicerade och krångliga buggar.

------------------
Anders Lindbäck,Igiro Internet Giro

Medlem sedan maj 20018 027 inlägg
#12

Men ärver den av Växt också kan logiken bli en smula bucklig.

Då kanske bilens inredning möglar ;) Annars tycker jag det vore bra om rosten skulle kunna försvinna av att det växer fram ny fin plåt :)

Medlem sedan juli 2001228 inlägg
#13

He he, japp, men då implementerar man Growable istället eller hoppar över Corrodable.

Medlem sedan sep. 20001 124 inlägg
#14

Vore det inte händigt om bilen var Eatable också? Då kunde man åka till jobbet och äta upp delar av taket om det var soligt.

------------------
Hollowhead - levererar din dagliga dos av nyttig hårdrock!

848 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
716 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)