2011-11-08 13 views
22

Tengo una clase "ChildClass" que amplía la clase "ParentClass". En lugar de reemplazar por completo el constructor de la clase principal, primero quiero llamar al constructor de la clase padre y luego hacer un trabajo extra.Usando el constructor padre en una clase secundaria en Java

Creo que por defecto se llama al constructor de argumentos de la clase padre. Esto no es lo que quiero Necesito que se llame al constructor con un argumento. es posible?

me trataron

this = (ChildClass) (new ParentClass(someArgument)); 

pero eso no funciona porque no se puede modificar "este".

+2

['super'] (http://download.oracle.com/javase/tutorial/java/IandI/super.html) en Java. – birryree

+0

Mira esto para encontrar una solución: http://leepoint.net/notes-java/oop/constructors/constructor-super-example.html – Raihan

Respuesta

48

Puede hacer referencia al constructor principal con "super", desde el constructor de un elemento secundario.

public class Child extends Parent { 
    public Child(int someArg) { 
     super(someArg); 
     // other stuff 
    } 
    // .... 
} 
+2

Aha, gracias. Realmente debería leer el libro de programación de Java que tengo, me evitaría hacer preguntas estúpidas como esta. –

+6

La llamada al constructor del padre con super() debe ser la PRIMERA llamada en el constructor de su hijo. – bakoyaro

5

Debe usar la palabra clave super.

public ChildClass(...) { 
    super(...); 
} 
9

para invocar un constructor de clase específica de los padres, puesto super(param1, param2, ...) como la primera declaración en el cuerpo del constructor de clase de niños.

Cuestiones relacionadas