next up previous contents
Next: Clases dentro de clases Up: Repaso de Java Previous: this and super

Extender clases

Se puede crear nuevas clases a partir de la extención de clases ya existentes (en caso que no sean finales). Las nuevas clases se suelen llamar sub-clases o clases extendidas.

Una sub-clase heredará todas las propriedades de la clase súperior, aunque se tiene solamente acceso directo a las partes de la super-clase declaradas por lo menos protected.

No se puede extender al mismo tiempo de más de una clase súperior (diferencia a C++ donde se puede derivar de más de una clase).

Se puede sobreescribir métodos de la super-clase. Si se ha sobreescrito una cierta función, automáticamente todas las funciones con el mismo nombre aún con otras signaturas ya no están accesibles de modo directo.

Si se quiere ejecutar dentro de un método sobreescrito el código de la super-clase, se puede acceder el método original con la referencia super.

Se puede como mucho extender la accesibilidad de métodos sobreescritos. Se puede cambiar los modificadores del método. También se puede cambiar si los parámetros del método son finales o no, es decir, final no forma parte de la signatura.

Los tipos de las excepciones que lanza un método sobreescrito tienen que ser un subconjunto de los tipos de las excepciones que lanza el método de la super-clase. Dicho subconjunto puede ser el conjunto vacio.

Se se llama a un método dentro de una jerarquía de clases, se ejecuta siempre la versión del método que corresponde al objeto creado (y no necesariamente al tipo de referencia dado) respetando su accesibilidad. Está técnica se llama polimorfismo.


next up previous contents
Next: Clases dentro de clases Up: Repaso de Java Previous: this and super
© 2003, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática