Super mit Objekt füttern

Ich habe eine Frage zur Verebung.
Ich denke nicht, dass es möglich ist aber es wäre cool. Ich möchte einer Subklasse den Teil der Superklasse direkt übergeben. Beispiel:

public class XFile extends File{

public XFile(File file){
super=file;//Geht ja leider nicht
}

}

Wie würdet ihr dies am elegantesten umsetzen?

Ansonsten müsste ich das Objekt neu erstellen was wieder Performance frisst.

XFile x=new XFile(file.getPath());

Könntest Du etwas mehr dazu schreiben, wofür Du das gerne benutzen würdest? Dann könnte man evtl. alternative Vorschläge machen. So würde ich erstmal folgendes raten:

  • Verzichte auf Vererbung und nutze Komposition. Merke Dir also den Konstruktorparameter als Member Deiner Klasse. Delegiere Methodenaufrufe Deiner Klasse an das Member.
  • Falls Du die Superklasse selbst erstellst, programmiere in der Superklase Konstruktoren, die die gewünschten Parameter entgegennehmen.
  • In diesem File-Beispiel: Programmiere Konstruktoren, die eben NICHT die Inszanz einer Superklasse als Parameter erfordern, sondern die, die sie wirklich brauchen (in diesem Fall also den Pfad als String). Dann brauchst du überhaupt keine File-Instanz.

[QUOTE=spellsleeper]
Ansonsten müsste ich das Objekt neu erstellen was wieder Performance frisst.[/QUOTE]

Wenn das das einzige Argument ist: Vergiß es. Wenn eine Objekterzeugung (speziell bei irgendwas, was “File” im Namen hat) das Performance-Bottleneck ist, würde ich gerne mal sehen, worum es da geht.
(Ansonsten vielleicht auch, um rauszufinden, was der eigentliche Anlass und Kern der Frage ist :o )

Also die Sache hat sich damit eigentlich schon erledigt, die Komposition war auch mein erster Gedanke. Allerdings war ich mir nicht sicher ob es nicht eventuell doch eine elegantere Methode gibt.