P6 Vererbung erlaubt?

berry
Mausschubser
Mausschubser
Beiträge: 60
Registriert: 29. Nov 2004 23:46

P6 Vererbung erlaubt?

Beitrag von berry »

Hallo,

dürfen wir im P6 Vererbung benutzen? So etwas wie:

Code: Alles auswählen

public class AVLTree <Key extends Comparable<Key>, Data> extends BinarySearchTree<Key, Data>{...}

Benutzeravatar
MisterD123
Geek
Geek
Beiträge: 811
Registriert: 31. Okt 2006 20:04
Wohnort: Weiterstadt

Beitrag von MisterD123 »

das is ne gute frage, das testsystem würde das auf jeden fall akzeptieren wenn du die binarySearchTree-klassen alle auch wieder dazupackst. In der aufgabe steht die vorgegebenen Methodensignaturen durfen nicht geändert werden, die klassenbeschreibung denke ich allerdings aber genausowenig.. müsste sich der chef mal glaub ich zu äußern

wach
Computerversteher
Computerversteher
Beiträge: 323
Registriert: 25. Okt 2004 09:08

Beitrag von wach »

Hiho,

prinzipiell ist das kein Problem. Bitte aber in solchen Faellen unbedingt vorher mit der Testumgebung testen, ob das alles so klappt. Ich sehe momentan nichts, was hier evtl. Probleme verursachen koennte.

Gruß
Christian

HolgerF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 263
Registriert: 16. Jan 2007 14:20
Kontaktdaten:

Beitrag von HolgerF »

Da die Aufgabenstellung ja dazu auffordert, Code aus P5 wiederzuverwenden, wäre es eigentlich nur konsequent, das zu erlauben. Ein AVL-Baum IST ein binärer Suchbaum, also würde diese Vererbung auch absolut Sinn machen, wenn der eigene Code denn dafür hinreichend geeignet ist...

Aber ja, ein "Machtwort" dazu wäre wohl sinnvoll, auch wenn ich es selbst wohl nicht benutzen werde.

[Edit]Ok, knapp zu spät :D [/Edit]

murri
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 196
Registriert: 20. Nov 2005 21:18

Beitrag von murri »

dumme frage, aber kann ich meine traversierungen net 1 zu 1 übernehmen?

ich mein ob ich erbe oder mit copy und paste arbeite ist ja bei einer klasse wurscht.

ich hab mir auch schon überlegt, ob ich nicht einfach alles so lasse und einfach nach add oder remove ein "isStillAvl" oder so hänge...

oder ist das komplett an der aufgabenstellung vorbei?!

HolgerF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 263
Registriert: 16. Jan 2007 14:20
Kontaktdaten:

Beitrag von HolgerF »

Nein, das geht auch, das hab ich im Prinzip so gemacht (obwohl ich ein paar Interna geändert habe, die für den AVL nicht ganz so optimal waren).

murri
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 196
Registriert: 20. Nov 2005 21:18

Beitrag von murri »

gut, das denk ich mir, aber wie gesagt, ist ja auch ein binärbaum.
also werd ich mich mal auf diese schiene begeben und versuchen das so zu lösen.
aber hast du was an den traversierungen geändert oder haste die komplett gelassen?

HolgerF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 263
Registriert: 16. Jan 2007 14:20
Kontaktdaten:

Beitrag von HolgerF »

Die Traversierungen hab ich komplett gelassen, ebenso meine Suchfunktionen. Im Prinzip hab ich sogar add und remove fast stehengelassen, musste die aber an ein paar Stellen ändern, hauptsächlich aber, weil ich eben meine interne Repräsentation des Baums ein bisschen geändert habe, und nur an einer Stelle, um Zusatzinformationen für den AVL-Baum zu tragen. Und dann rufen am Ende beide Funktionen tatsächlich eine rebalance-Funktion auf, die sich um die Einhaltung des AVL-Kriteriums kümmert.

benrub
Mausschubser
Mausschubser
Beiträge: 48
Registriert: 3. Dez 2006 01:26

Beitrag von benrub »

Kann ich quasi nach dem super() -befehl noch code in die methode schreiben?

HolgerF
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 263
Registriert: 16. Jan 2007 14:20
Kontaktdaten:

Beitrag von HolgerF »

Auf jeden Fall.

jno
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 18. Mai 2007 09:41

Beitrag von jno »

Hm, hätte es auch gerne gemacht. Blöd ist nur, dass ich oftmals in Methoden von BST neue Objekte vom Typ BST erstelle, und wenn ich die dann an AVLTree vererbe und dort nutze, sollten an den Stellen natürlich AVLTrees erzeugt werden... Keine Ahnung, wie ich das machen soll, also doch eher C&P...

wach
Computerversteher
Computerversteher
Beiträge: 323
Registriert: 25. Okt 2004 09:08

Beitrag von wach »

jno hat geschrieben:Hm, hätte es auch gerne gemacht. Blöd ist nur, dass ich oftmals in Methoden von BST neue Objekte vom Typ BST erstelle, und wenn ich die dann an AVLTree vererbe und dort nutze, sollten an den Stellen natürlich AVLTrees erzeugt werden... Keine Ahnung, wie ich das machen soll, also doch eher C&P...
Wie man das alles besser machen kann, lernt man spaeter in EiSE ff. In GDI2 ist es vollkommen legitim, da auchmal das C&P Antipattern zu nutzen :)

Eine Moeglichkeit die Erzeugung von Objekten in diesem Zusammenhang in den Griff zu bekommen ist Factory Method

http://en.wikipedia.org/wiki/Factory_method_pattern

Ich hab den Artikel nicht gelesen. Wer wirklich sicher gehen will, lese Gamma et. al. Design Pattern

Antworten

Zurück zu „Archiv“