Dynamisches Binden

pe81

Mitglied
hallo
ich würde gerne eine hilfe gebrauchen

ich habe eine klasse A

Java:
public class A {
  public A() {
    System.out.println("Klasse A");
  }
}

und eine klasse B

Java:
public class B extends A {
  public B() {
    System.out.println("Klasse B");
  }
}

Wird eine Instanz der Klasse B mit new B() erzeugt, so erfolgt folgende Ausgabe:
Klasse A
Klasse B

wie kann ich die Klassen verändern damit ich die Ausgabe
Klasse B
Klasse A
bekomme ohne new B() zu verändern.

Danke für die Hilfe

Lg
pe
 
Zuletzt bearbeitet von einem Moderator:
F

Firephoenix

Gast
Hi,
der super(); -Aufruf erfolgt doch sowieso automatisch im Hintergrund.
Eigentlich bräuchte er erst den println für B und dannach den super-Aufruf, das geht allerdings nicht,
da der super() Aufruf immer als erstes statement erfolgt.
Gruß
 
G

Gast2

Gast
wie kann ich die Klassen verändern damit ich die Ausgabe
Klasse B
Klasse A
bekomme ohne new B() zu verändern.
- B darf nichtmehr von A erben
- Im Konstruktor von B steht dann:
Java:
public B() {
    System.out.println("Klasse B");
    new A();
}
Ansonsten wird immer zuerst der Konstruktor der Oberklasse aufgerufen.
 

Kirro

Mitglied
Du kannst ein leeren default konstruktor in Abentutzen

und einen zusätzlichen Konstruktur in A mit parameter vergabe und dann im konstruktor von B
super(parameter) aufrufen

das wäre eventuell ne lösung?
 

Suinos

Bekanntes Mitglied
Im Konstruktor ist das unmöglich, da immer zuerst entweder ein anderer, eigener Konstruktor (
Code:
this()
), oder einer der Superklasse (
Code:
super()
) aufgerufen wird; wenn du es nicht hin schreibst, wird implizit der default-Konstruktor der Superklasse aufgerufen, und wenn dieser nicht existiert, gibt der Compiler eine Fehlermeldung aus.

Du kannst die Aktion aber in eine Methode auslagern, und diese dann in der Unterklasse entsprechend überschreiben:
Java:
private static class A
{
	public A()
	{
		print();
	}
	
	protected void print()
	{
		System.out.println("A");
	}
}

private static class B extends A
{
	public B()
	{
		
	}
	
	@Override
	protected void print()
	{
		System.out.println("B");
		
		super.print();
	}
}

public static void main(String... args) throws Exception
{
	new B();
}
->
Code:
B
A
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Unterschied: Polymorphie und Dynamisches Binden Allgemeine Java-Themen 8
M Statisches und dynamisches Binden? Allgemeine Java-Themen 2
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
N Eclipse Dynamisches-Web-Project auf anderen Rechner transportieren Allgemeine Java-Themen 5
looparda Dynamisches Konsolenprogramm Allgemeine Java-Themen 3
T Dynamisches p:graphicimage im Datagrid Allgemeine Java-Themen 7
C Dynamisches und sortiertes Auslesen von Properties Allgemeine Java-Themen 2
X Dynamisches hinzufügen von Panles Allgemeine Java-Themen 4
A Dynamisches Enum? Allgemeine Java-Themen 2
S dynamisches Array für Primfaktorzerlegung Allgemeine Java-Themen 13
S Dynamisches Manipulieren/Laden von Klassen Allgemeine Java-Themen 4
Z Dynamisches JPanel Allgemeine Java-Themen 10
hdi Dynamisches Instantiieren (Reflections) Allgemeine Java-Themen 4
H2SO3- dynamisches anlegen der dimensionaltität eines arrays Allgemeine Java-Themen 6
reibi Klassenpfad mal anders - dynamisches Laden einer Klasse Allgemeine Java-Themen 7
lumo "Exzessiv" dynamisches generieren Allgemeine Java-Themen 6
P dynamisches Array / Vector Allgemeine Java-Themen 2
R Dynamisches Laden von JNI-Bibliotheken Allgemeine Java-Themen 4
N Mehrdimensionales dynamisches Array Allgemeine Java-Themen 3
T Dynamisches laden von java Klassen Allgemeine Java-Themen 2
B Dynamisches Linken Allgemeine Java-Themen 15
M Dynamisches ausführen von methoden unbekannter klassen Allgemeine Java-Themen 6
V dynamisches laden von klassen Allgemeine Java-Themen 8
C Dynamisches Nachladen von JARs (Plugin) Allgemeine Java-Themen 3
S Dynamisches Casten Allgemeine Java-Themen 5
S Dynamisches Feld generieren. Allgemeine Java-Themen 10
E Dynamisches Instanziieren Allgemeine Java-Themen 2
B dynamisches Laden aller Klassen in einem Ordner ?? Allgemeine Java-Themen 5
L Compiler-Fehler Google Guice Module zur Laufzeit zusammenstellen und binden Allgemeine Java-Themen 4
J instanceof vermeiden und stattdessen dynamisch binden Allgemeine Java-Themen 6
S Properties binden Allgemeine Java-Themen 2
E Classe an JTable binden Allgemeine Java-Themen 11

Ähnliche Java Themen

Neue Themen


Oben