OOP von Basisklasse in Kindklasse umwandeln

FroggieFrog

Mitglied
Ich habe ein Objekt einer Basisklasse "Baseclass" mit ihren gefüllten Werten.
Nun möchte ich gerne ein Objekt einer Kindklasse "Childclass" auf Basis der Werte des anderen Objekts erstellen. Die Kindklasse erbt von der Basisklasse und hat 4 zusätzliche Felder.

Folgendes geht nicht:
Java:
Baseclass baseClass = getFilledBaseClassObject();
Childclass childClass = baseClass;
childClass.setZusatz01("dummy");

//mache was mit childClass ...

Wie kann ich dennoch mein Ziel erreichen?
 

Marco13

Top Contributor
Oder einen Copy-Konstruktor
Code:
public ChildClass(BaseClass base)
{
    // Setze alles so wie in 'base'
}
 

hartzie

Aktives Mitglied
Also ich würde von Kopiekonstruktoren abraten da diese falsche effekte erzielen können. Ich hab damit schon Erfahrungen gemacht.
Am sichersten ist die clone Methode.
 

FroggieFrog

Mitglied
Ich habe da glaube ich eine ganz passable Lösung gefunden:
Java:
Childclass childClass = (Childclass)getFilledBaseClassObject();
childClass.setZusatz01("dummy");

//mache was mit childClass ...

Spricht irgendetwas gegen diese Lösung?
 

hartzie

Aktives Mitglied
Da wird dir ein Laufzeitfehler kommen da soetwas nicht abwärtskompatibel ist, sprich es fehlen die zusätlichen Feldvariablen von der Kindsklasse, die sind nämlich undefiniert und das mag Java gar nicht.
 

FroggieFrog

Mitglied
Aha, okay....
Wie würde dann so eine clone-Methode aussehen? Also so Pseudocode mäßig. Gibt es da bestimmte Richtlinien die man einhalten sollte?
 

hartzie

Aktives Mitglied
Die zu ebernde Klasse ruft ja den Superkonstruktor auf.
Dann einfach in der Kindsklasse eine Methode clone implementieren.
public Kindklasse clone()
{
return new Kindklasse(this.ParametervonElternKlasse..., und hier dann noch die Parameter von der Kindklasse);
}
 

FroggieFrog

Mitglied
? Also wäre das dann so: ?
Java:
public class BaseClass
{
	public String value01;
	public String value02;
}

public class ChildClass extends BaseClass
{
	private String zusatz01;        
	
        public ChildClass clone()
        {
                ChildClass tmp = new ChildClass();
                tmp.setValue01(this.value01);
                tmp.setValue02(this.value02);
                tmp.setZusatz01(this.zustaz01);
                return tmp;
        }
}

//und woanders dann sowas
Baseclass baseClass = getFilledBaseClassObject();
//ab hier weiß ich nicht weiter
Childclass childClass = baseClass.clone();
childClass.setZusatz01("dummy");
 
//mache was mit childClass ...
 

diggaa1984

Top Contributor
Die zu ebernde Klasse ruft ja den Superkonstruktor auf.
Dann einfach in der Kindsklasse eine Methode clone implementieren.
public Kindklasse clone()
{
return new Kindklasse(this.ParametervonElternKlasse..., und hier dann noch die Parameter von der Kindklasse);
}

wie soll das denn klappen wenn er als Ausgangsobjekt ein BaseKlasse-Objekt hat, auf dem er das clone() anwenden müsste. Mit nem Clone alleine kommt man doch nicht in der Vererbung nach unten, da müsstest schon noch mit nem copy-Konstruktor arbeiten á la:
Java:
ChildClass c = new ChildClass(baseObject.clone());

//was ich aus Gründen von Seiteneffekten nicht machen würde wäre
ChildClass c = new ChildClass(baseObject);

Java:
public ChildClass(BaseClass b) {
    super(b); //Copy-Konstruktor der Superklasse, macht die Sache übersichtlicher
    //Felder der Childklasse initialisieren
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
E gleicher Name in der Basisklasse und in der Subklasse Java Basics - Anfänger-Themen 45
M Vererbung Funktionen in Basisklasse deklarieren Java Basics - Anfänger-Themen 4
S Vererbung Zugriff auf die Basisklasse einer "zweiten" Erweiterungsklasse Java Basics - Anfänger-Themen 2
S Vererbung Array aus Basisklasse bilden? Java Basics - Anfänger-Themen 5
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
J Vererbung Zugriff auf die Basisklasse Java Basics - Anfänger-Themen 4
A Aufruf von Konstruktor aus Basisklasse Java Basics - Anfänger-Themen 7
J Vererbung Frage zu Basisklasse Java Basics - Anfänger-Themen 6
P Vererbung Basisklasse soll eigene Methode benutzen Java Basics - Anfänger-Themen 38
K feld von basisklasse ändern Java Basics - Anfänger-Themen 11
H Kapselung protected aber in einer Kindklasse nicht zugänglich Java Basics - Anfänger-Themen 5
M Funktion der Mutterklasse aus Kindklasse aufrufen?? Java Basics - Anfänger-Themen 19
H Werte der Kindklasse aus Elternklasse übernehmen,wie? Java Basics - Anfänger-Themen 7
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
R int in Ascci umwandeln Java Basics - Anfänger-Themen 7
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
S JAR zu EXE umwandeln Java Basics - Anfänger-Themen 22
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
C Rekursive Methode in Interative Methode umwandeln Java Basics - Anfänger-Themen 17
J Dezimalzahl in Bruch Umwandeln und Kürzen Java Basics - Anfänger-Themen 8
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
S String umwandeln Java Basics - Anfänger-Themen 6
F Character umwandeln als Double Werte Java Basics - Anfänger-Themen 8
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
O von Basis 10 in Basis x umwandeln Java Basics - Anfänger-Themen 5
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
I JSON Datei in Array umwandeln Java Basics - Anfänger-Themen 1
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
S \n nicht in Zeilenumbruch umwandeln Java Basics - Anfänger-Themen 5
W Dezimalzahlen in Binärzahl umwandeln. Wie möglich ? Java Basics - Anfänger-Themen 9
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
P 32 Bit Binärzahl Umwandeln in Dezimal Java Basics - Anfänger-Themen 8
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
MiMa String in Gross und Kleinbuchstaben umwandeln Java Basics - Anfänger-Themen 10
H JCalendar in String umwandeln Java Basics - Anfänger-Themen 9
P Wie kann ich mein Programm zu einer App umwandeln? Java Basics - Anfänger-Themen 4
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
E Von Double zu Long umwandeln Java Basics - Anfänger-Themen 9
L String in Binär umwandeln Java Basics - Anfänger-Themen 4
G .java in .jar umwandeln Eclipse Java Basics - Anfänger-Themen 12
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
K Double Wert runden und in Int umwandeln Java Basics - Anfänger-Themen 7
K For Schleife in While Schleife umwandeln Java Basics - Anfänger-Themen 5
C Array in String umwandeln Java Basics - Anfänger-Themen 5
K Methoden Zahlensysteme umwandeln mittels Rekursion Java Basics - Anfänger-Themen 5
W Wie kann man diesen Code in einen Code umwandeln, der folgendes können sollte? Java Basics - Anfänger-Themen 1
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N Collections String in HashMap umwandeln Java Basics - Anfänger-Themen 3
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
L Java CMD Console in String umwandeln? Java Basics - Anfänger-Themen 2
D String zu int umwandeln Java Basics - Anfänger-Themen 2
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
K Wie .java in .jar umwandeln? Java Basics - Anfänger-Themen 5
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
G double in float umwandeln Java Basics - Anfänger-Themen 2
M csv in xlsx umwandeln Java Basics - Anfänger-Themen 7
F Char in Long umwandeln? Java Basics - Anfänger-Themen 2
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
J Mit Eclipse PLZ in Koordinaten umwandeln und ausgeben Java Basics - Anfänger-Themen 3
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
T opengl Dreick in einen Würfel umwandeln Java Basics - Anfänger-Themen 0
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
S Element von List<E> in String umwandeln Java Basics - Anfänger-Themen 3
N Unsymmetrisches mehrdimensionales Array in eindimensionales umwandeln Java Basics - Anfänger-Themen 2
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
W Umwandeln von Dezimal in Dual - Ausgabe incl. Rechenschritte Java Basics - Anfänger-Themen 11
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
J array in String umwandeln Java Basics - Anfänger-Themen 1
J array in String umwandeln Java Basics - Anfänger-Themen 3
S Klasse properties - Probleme beim umwandeln Java Basics - Anfänger-Themen 3
1 Binärdarstellung (als String) in Dezimalzahl umwandeln Java Basics - Anfänger-Themen 8
J subStrings zu int Array umwandeln? Java Basics - Anfänger-Themen 19
K JTextField auslesen, in int umwandeln und in einer anderen Klasse als Zähler verwenden Java Basics - Anfänger-Themen 3
C '.java' in '.exe' umwandeln. Java Basics - Anfänger-Themen 2
T Operatoren Float in byte umwandeln Java Basics - Anfänger-Themen 3
P Datum umwandeln Java Basics - Anfänger-Themen 5
P [B@6a435f in normalen Zahlen umwandeln, wie? Java Basics - Anfänger-Themen 14
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
J C++ Bitmanipulations-Programm in Java umwandeln Java Basics - Anfänger-Themen 10
B Zahl Basis 10 in DualDezimal 16bit umwandeln Java Basics - Anfänger-Themen 8
X Datentypen Int oder String in Bits/Bytes umwandeln Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben