Last active
August 26, 2020 06:23
-
-
Save konami12/0558683cccdef34ac5663a0e89b1b15a to your computer and use it in GitHub Desktop.
Principio de polimorfismo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// referencia a la clase pokemon | |
// https://gist.github.com/konami12/2359d276454cdcb81d291597a042e375 | |
/* | |
Para poder implementar el polimorfismo iniciaremos | |
aplicando el principio de herencia. | |
*/ | |
class TypeFire extends Pokemon { | |
constructor(name, evolutions) { | |
super(name, "fire", evolutions); | |
} | |
message() { | |
// Utilizamos uno de los métodos de la clase padre | |
return `Hola soy ${this.name} y soy de tipo fuego`; | |
} | |
} | |
/* | |
Creamos la instancia de la clase "TypeFire" | |
pero en este ejemplo no modificamos el mêtodo attack | |
*/ | |
const Charmander = new TypeFire("Charmander", ["Charmeleon", "Charizar"]); | |
/* | |
Invocamos el mêtodo attack pero aun | |
tendra el comportamiento definido por | |
la clase padre. | |
*/ | |
const ATTACK_FIRE = Charmander.attack(); | |
console.log(ATTACK_FIRE); | |
// Salida : // Charmander, esta atacando. | |
/* | |
Para poder implementar el polimorfismo iniciaremos | |
aplicando el principio de herencia. | |
*/ | |
class TypeFire extends Pokemon { | |
constructor(name, evolutions) { | |
super(name, "fire", evolutions); | |
} | |
message() { | |
// Utilizamos uno de los métodos de la clase padre | |
return `Hola soy ${this.name} y soy de tipo fuego`; | |
} | |
/* | |
En este caso sobre escribimos el mêtodo attack | |
para definir un nuevo comportamiento. | |
*/ | |
attack() { | |
return `${this.name}, ataca con Aliento Igneo`; | |
} | |
} | |
/* | |
Creamos la instancia de la clase "TypeFire" | |
*/ | |
const Charmander = new TypeFire("Charmander", ["Charmeleon", "Charizar"]); | |
/* | |
Invocamos el mêtodo attack pero en esta | |
ocación conseguiremos una repuesta diferente. | |
*/ | |
const ATTACK_FIRE = Charmander.attack(); | |
console.log(ATTACK_FIRE); | |
// Salida Charmander, ataca con Aliento Igneo. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment