Legen Firmen mehr Wert auf Java, als auf C++? Generelle Fragen zu diesem Thema.
-
interpreter schrieb:
Fakt ist doch, dass Mehrfachvererbung nur von wenigen wirklich beherrscht wird und man damit leicht schwer auffindbare Fehler einbauen kann. Also ist es nur eine logische Konsequenz in neueren Sprachen dieses Features wieder auszubauen.
also ich hätte es letztens gut gebrauchen können. da wollte ich einer (java)klasse eine zusätzliche funktionalität verpassen (zu dem zweck mussten vorhandene methoden überladen werden) - aber die war schon von einer anderen klasse abgeleitet. pech gehabt!
-
Mehrfachvererbung wäre in Java noch deutlich schlimmer als in C++. Durch die Tatsache, dass in Java jede Klasse direkt oder indirekt von Objekt erbt, würde beim Einsatz von Mehrfachvererbung immer ein "deadly diamond of death" entstehen.
...Mehrfachvererbung und Java passen einfach nicht zusammen. So einfach ist das. Wenn es das in Java geben würde, dann hätte man immer Probleme damit.
-
Gregor schrieb:
...Mehrfachvererbung und Java passen einfach nicht zusammen. So einfach ist das. Wenn es das in Java geben würde, dann hätte man immer Probleme damit.
kann man das denn wenigstens simulieren irgendwie?
mit interfaces geht es ja nicht wirklich, weil die keinen ausführbaren code enthalten dürfen
-
net schrieb:
kann man das denn wenigstens simulieren irgendwie?
mit interfaces geht es ja nicht wirklich, weil die keinen ausführbaren code enthalten dürfenOft kommt man schon weiter, wenn man sich auf folgenden Standpunkt stellt:
Die Klasse ist das nicht, sondern hat es.
-
Gregor schrieb:
Die Klasse ist das nicht, sondern hat es.
das hilft mir jetzt nicht wirklich weiter....
-
Klugschwätz: Ich würde eher sagen, es heißt: "hat die Eigenschaft von"
-
net schrieb:
Gregor schrieb:
Die Klasse ist das nicht, sondern hat es.
das hilft mir jetzt nicht wirklich weiter....
Ja, wir haben auch keinen Plan, wo dein Problem liegt. Im allgemeinen kann man sehr gut ohne Mehrfachvererbung auskommen.
-
net schrieb:
Gregor schrieb:
Die Klasse ist das nicht, sondern hat es.
das hilft mir jetzt nicht wirklich weiter....
Du hast offensichtlich die Sprache Java noch nicht verstanden
-
interpreter schrieb:
impuls schrieb:
Ein Sprachmittel zu verteufeln, weil damit Unsinn getrieben werden kann ist quatsch.
Nein. Oder willst du sagen, dass alle Features von C++ ultimativ gut sind?
Fakt ist doch, dass Mehrfachvererbung nur von wenigen wirklich beherrscht wird und man damit leicht schwer auffindbare Fehler einbauen kann. Also ist es nur eine logische Konsequenz in neueren Sprachen dieses Features wieder auszubauen.Aehm sorry, weil es nicht jeder Beherrscht, wird das Mittel ausgebaut?
Wasn das fuer ein Argument? Weil nicht jeder mit einem 400 PS Motor umgehen kann, werden Ferraris auch nicht mit 90 PS geliefert oder?
Sollte man dem Entwickler selbst nicht etwas vertrauen entgegen bringen, und es ihm ueberlassen, ob er es nutzt?
Ich musste mich in Java schon ein paar mal aufregen, wegen diesem fehlenden Feature und wieder ein Workaround basteln.
-
Optimizer schrieb:
Im allgemeinen kann man sehr gut ohne Mehrfachvererbung auskommen.
im allgemeinen kann man auch ganz ohne oop auskommen
also mal folgendes:
ich habe eine klasse mit "tollen funktionen" um andere klassen zu erweitern.
also klasse-1 erbt von der und hat auch die tollen funktionen
klasse-2 ebenso, alles ok bisher.
nun habe ich noch klasse-3, die aber schon von klasse-4 erbt.
klasse-3 soll auch die "tollen funktionen" bekommen.
wie mach' ich das in java?
-
Gregor hat doch schon ausgeführt, warum Mehrfachvererbung in Java ein ganz besonderes Problem wäre.
Und wenn du dich ständig über die fehlende Mehrfachvererbung aufregen musst, dann solltest du mal deine Designs ein bisschen überdenken. Ich sag ja nichts, wenn mal einer ab und zu vielleicht doch ganz gerne Mehrfachvererbung gehabt hätte.
Aber so wie sich das anhört, bist du ziemlich oft darauf angewiesen und das kommt mir nicht sehr geschickt vor.
-
net schrieb:
Optimizer schrieb:
Im allgemeinen kann man sehr gut ohne Mehrfachvererbung auskommen.
im allgemeinen kann man auch ganz ohne oop auskommen
also mal folgendes:
ich habe eine klasse mit "tollen funktionen" um andere klassen zu erweitern.
also klasse-1 erbt von der und hat auch die tollen funktionen
klasse-2 ebenso, alles ok bisher.
nun habe ich noch klasse-3, die aber schon von klasse-4 erbt.
klasse-3 soll auch die "tollen funktionen" bekommen.
wie mach' ich das in java?Definitiv falsches Verständnis von Vererbung.
Vererbung ist nicht da, um tolle Funktionen auf eine andere Klasse zu übertragen.
-
SnorreDev schrieb:
Ich musste mich in Java schon ein paar mal aufregen, wegen diesem fehlenden Feature und wieder ein Workaround basteln.
auch du hast java offensichtlich noch nicht verstanden. aber versucht nur weiterhin die Konzepte anderer Sprachen krampfhaft in neue Sprachen zu uebernehmen. irgendwann habt es auch ihr geschnallt
-
Optimizer schrieb:
Gregor hat doch schon ausgeführt, warum Mehrfachvererbung in Java ein ganz besonderes Problem wäre.
Und wenn du dich ständig über die fehlende Mehrfachvererbung aufregen musst, dann solltest du mal deine Designs ein bisschen überdenken. Ich sag ja nichts, wenn mal einer ab und zu vielleicht doch ganz gerne Mehrfachvererbung gehabt hätte.
Aber so wie sich das anhört, bist du ziemlich oft darauf angewiesen und das kommt mir nicht sehr geschickt vor.Ich bin nicht darauf angewiesen, nur programmiere ich die meiste Zeit c++. Und wenn ich mal ein kleines Testprog oder Tool in Java bastle, merke ich, dass mir dieses Feature abgeht. >95% wird ja Mehrfachvererbung nicht benoetigt, aber in diesen seltenen Faellen finde ich es eben doch Designtechnisch etwas ungeschickt, ohne auszukommen zu muessen.
-
Optimizer schrieb:
Definitiv falsches Verständnis von Vererbung.
Vererbung ist nicht da, um tolle Funktionen auf eine andere Klasse zu übertragen.macht nichts. mit c++ würde es aber gehen. auch ohne "diamond of death"
btw: soll jetzt kein flamewar werden, ich will nicht java verteufeln
-
net schrieb:
Optimizer schrieb:
Definitiv falsches Verständnis von Vererbung.
Vererbung ist nicht da, um tolle Funktionen auf eine andere Klasse zu übertragen.macht nichts. mit c++ würde es aber gehen.
Deshalb hast du dann Vererbung immer noch falsch angewendet.
-
Optimizer schrieb:
net schrieb:
Optimizer schrieb:
Definitiv falsches Verständnis von Vererbung.
Vererbung ist nicht da, um tolle Funktionen auf eine andere Klasse zu übertragen.macht nichts. mit c++ würde es aber gehen.
Deshalb hast du dann Vererbung immer noch falsch angewendet.
Wieso soll Vererbung nicht dazu da sein, Funktionen zu vererben?
Wenn Vererbung also solche diese Funktionalitaet nicht bieten wuerde, haetten wir doch nur abstrakte interfaces und die selben Funktionen XMal per cut/paste uebernommen.
Irgendwie hab ich jetzt nicht verstanden was du meinst, oder meinst du das wirklich so wie ichs verstanden habe?
-
Optimizer schrieb:
Deshalb hast du dann Vererbung immer noch falsch angewendet.
und damit ich das nicht wieder tu' sag mir bitte, wie man sowas normalerweise in java macht.
-
Kindergarten
-
net schrieb:
Optimizer schrieb:
Deshalb hast du dann Vererbung immer noch falsch angewendet.
und damit ich das nicht wieder tu' sag mir bitte, wie man sowas normalerweise in java macht.
Genauso wie in jeder anderen Sprache. Vererbung benutzt man nicht, weil man in der anderen Klasse jetzt auch solche Funktionen haben will.
Sondern um eine Typhierarchie zu schaffen, bei der Vererbung einer "ist eine Art von" oder "ist ein Spezialfall von" bedeutet.Und nicht "Klasse A kann was, Klasse B kann was und ich will, dass Klasse C das auch beides kann".