Herramientas de usuario

Herramientas del sitio


bloque3:herencia

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:herencia [15/02/2023 00:31] – [Palabra clave Extends] Fernando Valdeónbloque3:herencia [16/09/2024 20:53] (actual) – editor externo 127.0.0.1
Línea 72: Línea 72:
 } }
 </code> </code>
 +
  
 {{:bloque3:cocheherencia.png?400 |}} {{:bloque3:cocheherencia.png?400 |}}
->IDE Eclipse+
 Aquí vemos como aparecen los métodos heredados de la superclase Vehiculo: ''getKm()'', ''setKm()'', ''getMatricula()'' y ''setMatricula()''. Aquí vemos como aparecen los métodos heredados de la superclase Vehiculo: ''getKm()'', ''setKm()'', ''getMatricula()'' y ''setMatricula()''.
  
Línea 100: Línea 101:
 Por ejemplo las clases ''String'' o ''Math'' no se pueden heredar, ya que están definidas como ''final''. Por ejemplo las clases ''String'' o ''Math'' no se pueden heredar, ya que están definidas como ''final''.
 ===== Constructor de la subclase ===== ===== Constructor de la subclase =====
-**Los constructores no se heredan**. __Siempre que se crea una instancia de una subclase, se crea primero una instancia de la superclase__. Esta instanciación puede ser implícita, o explícita, o lo que es lo mismo, invisible o visible.+**Los constructores no se heredan**. __Siempre que se crea una instancia de una subclase, se crea primero una instancia de la superclase__. Esta instanciación puede ser implícita, o explícita, o lo que es lo mismo, invisible a nivel de código, o visible.
  
 En una clase se puede definir un constructor de forma explícita, o no definir ninguno. **Cuando no definimos un constructor, Java crea implícitamente uno**. No tiene parámetros, y no hace nada, pero sirve para crear instancias de la clase. Se conoce como constructor **no-args**, sin argumentos (parámetros). En una clase se puede definir un constructor de forma explícita, o no definir ninguno. **Cuando no definimos un constructor, Java crea implícitamente uno**. No tiene parámetros, y no hace nada, pero sirve para crear instancias de la clase. Se conoce como constructor **no-args**, sin argumentos (parámetros).
  
 Atendiendo a lo anterior, con los constructores de la subclase puede ocurrir 2 cosas: Atendiendo a lo anterior, con los constructores de la subclase puede ocurrir 2 cosas:
-  * **La superclase tiene un constructor sin parámetros** (ya sea el que define Java de forma implícita, o uno definido por nosotros que no tiene parámetros). En este caso en la subclase podemos definir un constructor, o no definir ninguno (Java crea un constructor **no-args** implícitamente). Cada vez que creemos una instancia de la subclase, Java llamará automáticamente al constructor de la superclase de forma implícita, invisible.+  * **La superclase tiene un constructor sin parámetros** (ya sea el que define Java de forma implícita cuando no hemos definido ninguno, o uno definido por nosotros que no tiene parámetros). En este caso en la subclase podemos definir un constructor, o no definir ninguno (Java crea un constructor **no-args** implícitamente). Cada vez que creemos una instancia de la subclase, Java llamará automáticamente al constructor de la superclase de forma implícita, invisible.
   * **La superclase no tiene un constructor sin parámetros** (o sea, se ha definido uno con parámetros). En este caso Java no puede llamar de forma implícita al constructor de la superclase, ya que necesita saber qué valor dar a sus parámetros. Entonces estamos obligados a crear también un constructor en la subclase, cuya primera instrucción es una llamada al constructor de la superclase. Esto se hace usando la instrucción ''super()''.   * **La superclase no tiene un constructor sin parámetros** (o sea, se ha definido uno con parámetros). En este caso Java no puede llamar de forma implícita al constructor de la superclase, ya que necesita saber qué valor dar a sus parámetros. Entonces estamos obligados a crear también un constructor en la subclase, cuya primera instrucción es una llamada al constructor de la superclase. Esto se hace usando la instrucción ''super()''.
 ==== Palabra clave super ==== ==== Palabra clave super ====
bloque3/herencia.1676421063.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)