Konstruktoren bei der Vererbung

hallo,

hab ne kleine frage zu konstruktroren bei der aufgabe.

Nehmen wir mal an, wir hätten ein Objekt von der Klasse A erzeugt, welches zu beginn ein Atribut x = 1 hat. nach ein paar funktionsaufrufen ändert sich dieser wert zu x=8.

wenn ich jetzt ein objekt der Klasse B erzeuge, wobei die klasse B von der klasse A abgeleitet ist, und in dem konstruktor von B ein super()- aufruf steht, sodass ich zum konstruktor von A “hochspringen” muss, nehme ich dann bzw. initialisiere ich dann den x-wert von meiner B-Klasse mit 1 oder mit 8 ?

ich hoffe, ihr versteht mein problem…

edit: ich formuliere es mal allgemeiner : B ist abgeleitet von A. Ein Objekt der klasse A wird erzeugt, die ursprünglichen Werte seiner attribute seiner werte werden anschließend durch funktionsaufrufe verändert.
danach wird ein objekt der klasse B erzeugt, das ja alle attribute + methoden A übernimmt.
meine frage ist jetzt: enthällt das gerade erzeugte Objekt der klasse B die anfangswerte der Klasse A oder die schon veränderten vom Objekt A

Hier wäre es sinnvoll, Code zu posten, damit man das nachvollziehen kann.

Die Anfangswerte. Die beiden Objekte haben ja nichts miteinander zu tun (außer, dass sie irgendwo eine gemeinsame Oberklasse haben - wie alle Objekte).

Es enthält die Anfangswerte. Wenn Du die schon veränderten Werte vom Objekt A übernehmen willst, musst Du sie gezielt kopieren.

Gruß,
André

Eine solche Frage hätte man sich doch aber auch selbst beantworten können, wenn man einfach schnell zwei Klassen (KSKB) schreibt…

Du hast natürlich recht. Faulheit muss man nicht unbedingt unterstützen.

Aber da ein Satz, wie Du ihn geschrieben hast, in diesem Fall ungefähr so lang ist wie die Antwort, wollte ich seine Bequemlichkeit diesmal noch durchgehen lassen ;).

Gruß,
André

abgesehen von den letzten zwei “kommentaren” war der rest sehr hilfreich…danke…

edit: eine zwischenfrage hätte ich da noch. und zwar was passiert, wenn die variable statisch ist? also eine klassenvariable ist? sagen wir mal die war 1, wird danach zu ner 8, nehme ich auch hier den anfangswert oder den veränderten wert?
gibt es da so ne ausnahme bei klassenvariablen? Ne, oder?

meine vermutung ist folgende: in meinem java-buch was ich gerade lese, stand nämlich, dass alle erzeugten objekte die statischen variablen gemeinsam haben. statische sind ja schließlich keine instanzvariablen, sondern eben klassenvariablen und diese sind für alle gleich.

nun ja, trifft das auch in meinem beispiel zu? vorhin hatte ich gefragt, ob sich die anfangswerte der variablen übernommen werden. ja, sie werden übernommen. das ist jetzt klar. aber was passiert mit klassenvariablen?? wenn die statische variable doch jetzt verändert muss doch der veränderte wert übernommen werden, oder?

Deine Fragen kannst du dir selber beantworten, wenn du wirklich ein Buch liest und damit lernst.
Sowas sind Grundlagen der OOP.
Wenn du mal spontane Entscheidungen treffen musst, nützt dir ein Forum auch nichts. Also setz dich auf deinen Hintern und lerne selbst zurechtzukommen.

Für wirklich fachliche Fragen sind wir ja da, aber das Lernen können wir dir nicht beibringen.

Thread ist zu.

In einem anderen Forum pflege ich die Signatur “Programmieren lernt man nur durch programmieren.” zu führen.
Und du kannst mir glauben, da ist wirklich was dran. Lerning by doing ist für das Erlernen einer Programmiersprache die beste Methode.