Sei sulla pagina 1di 7

REFERENCIA AL OBJETO DE CLASE BASE

La funcionalidad de una clase existente se puede extender al crear una nueva clase que se deriva de ella. La clase derivada hereda las propiedades de la clase base y es posible agregar o reemplazar mtodos y

propiedades

segn

sea

necesario.

La palabra clave base

Se puede tener contacto con los miembros de clase base en una

subclase incluso cuando los miembros de base se reemplazan en la


superclase utilizando la palabra clave base. Por ejemplo, puede crear una clase derivada que contenga un mtodo con la misma firma que la clase base. Si se precede ese mtodo con la palabra clave new, se indica que se trata de un mtodo totalmente nuevo que pertenece a la clase derivada. Tambin se podra proporcionar un mtodo para tener contacto al mtodo original de la clase base con la palabra clave base.

Convertir un tipo a una clase base

Como en Java, no se puede utilizar una referencia a una clase base para tener contacto a los miembros y mtodos de una clase derivada, aunque la referencia de la clase base pueda contener una referencia vlida

a un objeto del tipo derivado.

Implcitamente, se puede hacer referencia a una clase derivada con una referencia al tipo derivado.

Seleccionar los constructores

Los objetos de clase base siempre se construyen antes

que cualquier clase derivada. De esta forma, el


constructor de la clase base se ejecuta antes que el constructor de la clase derivada. Si la clase base tiene ms de un constructor, la clase derivada puede decidir a qu constructor se va a llamar. Por ejemplo, podra modificar la clase CoOrds para agregar un segundo constructor, del siguiente modo.

Reemplazar el mtodo

Una clase derivada puede reemplazar el mtodo de una clase base si se proporciona una nueva implementacin del mtodo declarado.

Referencias y objetos abstractos

Se pueden crear referencias a clases abstractas como cualquier

otra. No hay ningn problema en poner:


Figura Geomtrica figura; Sin embargo una clase abstracta no se puede instanciar, es decir, no se pueden crear objetos de una clase abstracta. El compilador producir un error si se intenta: Figura Geomtrica figura = new Figura Geomtrica(); Esto es coherente dado que una clase abstracta no tiene completa su implementacin y encaja bien con la idea de que algo abstracto no puede materializarse.

Referencias y objetos abstractos

Sin embargo utilizando el up-casting visto en el captulo

dedicado a la Herencia si se puede escribir:

Figura Geomtrica figura = new Circulo(. . .); figura.dibujar();

La invocacin al mtodo dibujarse resolver en tiempo de ejecucin y la JVM llamar al mtodo de la clase adecuada. En nuestro ejemplo se llamar al mtodo dibujar de la clase Circulo.

Potrebbero piacerti anche