super en Java
En Java, tenemos una palabra clave predefinida super
que está algo relacionada con la clase padre. Discutiremos la función super
en detalle en este tutorial.
En Java, la palabra clave super
actúa como una variable de referencia para los objetos de la clase principal. Se puede usar para llamar a los métodos y variables de clase de los padres.
Por ejemplo
class Teacher { // Parent class
int grade = 90;
}
class Students extends Teacher { // subclass
Students() {
System.out.println("Grade " + super.grade);
}
}
public class Main {
public static void main(String[] args) {
Students s = new Students();
}
}
Producción :
Grade 90
En el ejemplo anterior, accedimos a la variable grado
de la clase principal Profesor
del constructor de su subclase Estudiantes
utilizando la palabra clave super
.
También tenemos la función super()
, que invoca el constructor de la clase del padre. Esta función solo se usa para llamar a los constructores de la clase padre. Se pueden llamar tanto constructores paramétricos como no paramétricos usando la función super()
. Si de alguna manera el constructor no invoca un constructor de superclase explícitamente mientras usa la función super()
, entonces el compilador de Java llama al constructor sin argumentos de la superclase.
Vea el código a continuación.
class Teacher { // Parent class
Teacher() // constructor
{
System.out.println("Teacher class Constructor");
}
}
class Students extends Teacher { // subclass
Students() {
super();
System.out.println("Students class Constructor");
}
}
public class Main {
public static void main(String[] args) {
Students s = new Students();
}
}
Producción :
Teacher class Constructor
Students class Constructor
Creamos una clase principal Teacher
y un constructor de clase principal en el código anterior, que imprime un mensaje. Luego se amplía una subclase Students
de Teacher
, que tiene un constructor Students()
que consiste en la función super()
para invocar el constructor de la clase padre. Luego tenemos la clase principal, que llama a la subclase para ejecutar el programa. La función super()
invocaba al constructor de la clase principal para imprimir el mensaje de la clase principal y luego de la subclase.