// how is it call abstract class constructor when i create subclass object ?
abstract class D {
    D() {
        System.out.println("called abstract class D constructor");//print
    }
}
public class DemoAbs extends D {
    DemoAbs() {
        System.out.println("called DemoAbs class constructor");
    }
    // how is it call abstract class constructor when i create subclass object ?
    public static void main(String[] args) {
        DemoAbs d=new DemoAbs();
    }
}
1
Ganshyam 30 dic. 2016 a las 10:26

3 respuestas

La mejor respuesta

Siempre que cree un objeto de subclase, el constructor de la subclase llamará al constructor de superclase usando super () implícitamente. Si el constructor de la clase principal acepta parámetros, entonces se requiere explícitamente llamar a super (params ...); De lo contrario, mostrará un error de compilación.

0
Nikita Mantri 30 dic. 2016 a las 11:34

Se llama encadenamiento de constructor:

La primera línea en un constructor es super() a menos que llame explícitamente this() O this(<with args>) O super(<with args>)

Deberías pasar por:

Encadenamiento de constructores en Java

Encadenamiento de constructores Java

2
Community 23 may. 2017 a las 10:30

Siempre que se llama a un constructor, primero llama a super(), lo que significa que se llama al constructor de la superclase para inicializar todas las variables de la superclase, después de lo cual se ejecuta el resto del constructor de la subclase.

0
Anindya Dutta 30 dic. 2016 a las 07:29