Herramientas de usuario

Herramientas del sitio


bloque3:polimorfismo

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bloque3:polimorfismo [20/05/2018 22:43] – [Herencia: Polimorfismo] Fernando Valdeónbloque3:polimorfismo [16/09/2024 20:53] (actual) – editor externo 127.0.0.1
Línea 9: Línea 9:
 De una forma resumida se puede decir que consiste en realizar un casting entre objetos: __una variable de una superclase puede almacenar referencias de objetos de sus subclases__. Podemos usar una variable de una superclase para acceder desde ella a métodos sobrescritos en la subclase.  De una forma resumida se puede decir que consiste en realizar un casting entre objetos: __una variable de una superclase puede almacenar referencias de objetos de sus subclases__. Podemos usar una variable de una superclase para acceder desde ella a métodos sobrescritos en la subclase. 
  
-Para explicar esto vamos a crear 3 clases: Vehiculo, Coche y Moto+Para explicar esto vamos a crear 3 clases: Vehiculo (Superclase), Coche y Moto (Subclases)
 <code java> <code java>
 public Class Vehiculo{ public Class Vehiculo{
Línea 83: Línea 83:
 </code> </code>
  
-Se puede llamar al método ''mostrarEspecificaciones()'' ya que es un método de la clase Vehículo. Cuando se ejecuta ese método primero se busca si existe en el objeto que tengo guardado en la variable, y sino existe buscaré en el de la superclase, y así sucesivamente, hasta la clase Object.+Se puede llamar al método ''mostrarEspecificaciones()'' ya que es un método de la clase Vehículo. Cuando se ejecuta ese método primero se busca si existe en el objeto que tengo guardado en la variable, y si no existebuscaré en el de la superclase, y así sucesivamente, hasta la clase Object.
  
-Sin embargo si desde una variable de la superclase ''Vehiculo'' quiero acceder a algún método de alguna subclase (getNumPuertas() ó getMarca()), no se permite, ya que no están definidos en esa clase.+Sin embargosi desde una variable de la superclase ''Vehiculo'' quiero acceder a algún método de alguna subclase (getNumPuertas() ó getMarca()), no se permite, ya que no están definidos en esa clase.
  
 Tampoco se permite almacenar un objeto de la superclase en una variable de una subclase: Tampoco se permite almacenar un objeto de la superclase en una variable de una subclase:
bloque3/polimorfismo.1526856204.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)