Java: Objekte aus zwei verschiedenen Klassen klonen?

3 Antworten

Du kannst das Objekt zu einer gemeinsamen Superklasse casten, dann funktioniert es.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Das geht schief.

Von Experte MrAmazing2 bestätigt

Das kannst Du nur bei Objekten, die Du auch aufgrund von Polymorphie ineinander casten könntest.

Junge und Mädchen sind bei Dir zwei nicht verwandte Klassen. Ob Du jetzt hinschreibst

Junge a = (Junge)m;

oder

Junge a = (Junge)m.clone();

macht keinen Unterschied für die Tatsache, dass das in einer Exception enden wird.

Folgendes hingegen würde funktionieren:

class Child {
...
}

class Maedchen extends Child {
}

class Junge extends Child {
}

Maedchen m = new Maedchen();
Child c = (Child)m.clone();

Alternativ könntest Du auch der Mädchen-Klasse eine "toJunge()" Methode und der Junge-Klasse eine "toMaedchen()" Methode spendieren, welche dann entsprechend ein Objekt vom Typ Junge oder Maedchen liefert, vorgefüllt mit allen Daten, die sinnvoll sind.