Vererbung Constructoraufruf

kaetzacoatl

Bekanntes Mitglied
Hallo,
Wenn ich eine Klasse mit mehreren Construtoren habe
und von dieser Klasse erbe, welcher Construktor wird dann aufgerufen,
wenn ich einen Constructor überschreibe?
Java:
public class TestS12N1 {
	
	protected String name;

	public TestS12N1(String name){
		this.name = name;
	}

	public TestS12N1() {}

}
class A extends TestS12N1{

	//Welcher Constructor wird hier aufgerufen?
	public A(String name) {
		this.name = name + "A";
	}
	
}
 

Templarthelast

Bekanntes Mitglied
Konstruktur aus Klasse TestS12N1 wird verwendest, außer wenn du den Konstruktor in Klasse A mit
Code:
@Override
deklarierst.
 

tfa

Top Contributor
Konstruktoren sind keine Methoden. Die kann man nicht überschreiben.
In einem Konstruktor einer Subklasse wird zuerst der parameterlose Konstruktor der Oberklasse aufgerufen (also implizit ein [c]super();[/c] am Anfang eingefügt). Wenn es in der Superklasse keinen parameterlosen Konstruktor gibt, ist das ein Compilerfehler. In diesem Fall musst du von Hand einen bestimmten Superkonstruktor aufrufen.
 

Noctarius

Top Contributor
Als Nachtrag zu tfa, dass bedeutet bei dir:
Java:
public class TestS12N1 {
    
    private String name;
 
    public TestS12N1(String name){
        this.name = name;
    }
 
}
class A extends TestS12N1{
 
    //Welcher Constructor wird hier aufgerufen?
    public A(String name) {
        super(name + "A");
    }
    
}
 

Neue Themen


Oben