Anda di halaman 1dari 5

Universidad Tecnolgica de El Salvador

USO DE SUPER.
Con la palabra reservada super podemos acceder desde una subclase a los miembros (variables y
mtodos) de la superclase inmediata, si se trata de una jerarqua de clases. super tambin se
utiliza al invocar desde la subclase el constructor de la superclase. super siempre hace referencia a
la superclase inmediata superior. Adems, es la primera instruccin ejecutada dentro de un
constructor de la subclase.

GENERACIN DE UNA GERARQUA MULTINIVEL.


La jerarqua multinivel en herencia se da en el momento que creamos clases a partir de otras,
pudiendo, una subclase B convertirse en una superclase de la clase C.
As:

Vea como tenemos una jerarqua de


clases, la superclase de B, C y D es A.
Sin embargo, una subclase tambin
puede comportarse como superclase,
como es el caso de B, D y E.
Los miembros de la clase A que no sean
privados se heredarn en todo el resto
de clases, adems cada una podr
tener la definicin de sus propios
miembros (variables y mtodos). Cada
clase puede tener constructores y no
olvide, estos no se heredan.

Programacin Orientada a Objetos

Ing. Jos Oswaldo Barrera Montes

Universidad Tecnolgica de El Salvador


CONSTRUCTORES Y HERENCIA.
Una subclase puede llamar a un constructor definido por su superclase mediante el uso de la
palabra reservada super.
super debe ser siempre la primera instruccin que escriba en el constructor de la super clase, es
importante aclarar que la llamada al constructor de la superclase solo es posible hacerla desde un
constructor, no desde un mtodo.
Veamos algunos ejercicios:
Ejercicio 1.

Vea como en la clase Persona se tiene un constructor sin parmetros y que imprime un
mensaje.
En la clase Estudiante se define un constructor, el cual simplemente invoca al de su superclase,
eso se logra a travs de super. Si el constructor de la superclase tuviera parmetros, al
momento de invocarlo se deben enviar los respectivos argumentos.
Pueden agregarse ms instrucciones en el constructor de la clase Estudiante, pero la lnea de
super debe ser la primera.
Al tener sobrecarga de constructores en la superclase, no es posible intentar invocar a cada uno
mediante la utilizacin de ms de un super, si eso se intenta hacer el compilador le enva un
mensaje de error. Slo puede llamar a uno.
Programacin Orientada a Objetos

Ing. Jos Oswaldo Barrera Montes

Universidad Tecnolgica de El Salvador


Ejercicio 2.

Aqu tenemos en la clase Personas dos variables que son inicializadas con los parmetros del
constructor, tambin vemos un mtodo cuya funcin es imprimir un mensaje en pantalla
concatenando el contenido de las variables.
La clase Estudiante tiene un constructor con parmetros, los cuales se convierten en
argumentos en la llamada al constructor de la superclase (lnea 20).
En la lnea 21 vea que se est utilizando una variante de super, en ella se est invocando un
miembro de la super clase (mtodo NombreCompleto). Cuando la invocacin es hacia un
miembro y no hacia un constructor, no hay ningn problema que no sea la primera instruccin,
adems tambin puede realizarse desde un mtodo.
En la lnea 29 se ejecuta el constructor de la subclase, el cual se encarga de llamar el de la
superclase y la ejecucin del mtodo.

Programacin Orientada a Objetos

Ing. Jos Oswaldo Barrera Montes

Universidad Tecnolgica de El Salvador


Ejercicio 3.

En la clase Persona se tienen dos variables, un constructor y un mtodo. De esa clase se ha heredado Estudiante, en
donde se declaran una variable y un constructor, vea que en este se tienen tres parmetros, su funcin es invocar el
constructor de su superclase, pasndole como argumento dos de sus parmetros, con el otro parmetro se inicializa
la variable carrera (lnea 22).
Vea el mtodo que se declara en la lnea 24, el formato de l es exactamente igual al declarado en la superclase
(lnea 10), la diferencia entre ambos es lo que hacen (imprimen mensajes distintos). Cuando en una subclase se
declaran mtodos con formatos iguales a otros declarados en la superclase, se dice que se tiene una sobrescritura de
mtodos. Un mtodo sobrescrito puede sobrecargarse.
En este mtodo hacemos la invocacin del mtodo de la super clase (lnea 26), por tanto, cuando desde la lnea 36 se
llame al mtodo DatosPersonales, de la clase Estudiante, este se encargar de llamar al mtodo de la superclase.
Cuando a travs de super se invoca un miembro de la superclase (variable o mtodo), no habr inconveniente en que
esa instruccin no sea la primera.

Programacin Orientada a Objetos

Ing. Jos Oswaldo Barrera Montes

Universidad Tecnolgica de El Salvador


Ejercicio 4 (le dar error).

ESTE EJERCICIO DAR ERROR!!

Este es el mismo ejercicio anterior, con una pequea variante, pero suficiente para que se produzca un
error y arruine por completo su funcionamiento.
Recuerda cuando hablbamos de la palabra reservada final, decamos que un mtodo definido como final
no podr ser sobrescrito. Por esa razn este ejercicio producir un mensaje de error, ya que el mtodo de
la superclase ha sido definido como final y en la subclase se est intentando hacer una sobrescritura (lnea
24). La solucin al error es no hacer la sobrescritura y hacer los acomodos necesarios en las instrucciones.

Programacin Orientada a Objetos

Ing. Jos Oswaldo Barrera Montes

Anda mungkin juga menyukai