Skip to content

Instantly share code, notes, and snippets.

@konami12
Last active August 25, 2020 17:03
Show Gist options
  • Save konami12/13becf910978de7bcc60af4028e56ab5 to your computer and use it in GitHub Desktop.
Save konami12/13becf910978de7bcc60af4028e56ab5 to your computer and use it in GitHub Desktop.
Primcipio de herencia
// referencia a la clase pokemon https://gist.github.com/konami12/2359d276454cdcb81d291597a042e375
/*
Para poder implementar el principio de "Herencia" se utiliza
la palabra reservada "extends" seguida del nombre del
objeto padre (Super Class) el cual seria "Pokemon".
*/
class TypeFire extends Pokemon {
constructor(name, evolutions) {
/*
Cuando la Super Clase utiliza el un método "constructor"
es necesario utilizar la palabra reservada "super" la cual
permite invocar al constructor de la Super Clase.
*/
super(name, "fire", evolutions);
}
/*
Creamos un método propio de la clase "TypeFire", internamente
utilizaremos algunos de los métodos heredados por la Super Clase
*/
message() {
// utilizamos uno de los mêtodos get de la clase padre.
return `Hola soy ${this.name} y soy de tipo fuego`;
}
}
/*
Creamos la instancia de la clase "TypeFire", en este caso ya no mandamos
el parametro "type" ya que por defecto la clase define.
*/
const CHARMANDER = new TypeFire("charmander", ["Charmeleon", "Charizar"]);
// Invocamosel método message y Mostramos el resultado
console.log(CHARMANDER.message());
// Salida: Hola soy charmander y soy de tipo fuego
/*
Modificamos el nombre del pokémon utilizando uno de los métodos
heredados de la Super Clase.
*/
CHARMANDER.name = "CHARMANDER";
// Invocamosel nuevamente método message y Mostramos el resultado
console.log(CHARMANDER.message());
// Salida: Hola soy CHARMANDER y soy de tipo fuego
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment