En este tutorial, aprenderá sobre la herencia de clases de JavaScript con la ayuda de ejemplos.
Herencia de clase
La herencia le permite definir una clase que toma toda la funcionalidad de una clase principal y le permite agregar más.
Al usar la herencia de clases, una clase puede heredar todos los métodos y propiedades de otra clase.
La herencia es una característica útil que permite la reutilización del código.
Para usar la herencia de clases, usa la extends
palabra clave. Por ejemplo,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( ) let student1 = new Student('Jack'); student1.greet();
Salida
Hola Jack
En el ejemplo anterior, la Student
clase hereda todos los métodos y propiedades de la Person
clase. Por lo tanto, la Student
clase ahora tendrá la name
propiedad y el greet()
método.
Luego, accedimos al greet()
método de Student
clase creando un student1
objeto.
Palabra clave de JavaScript super ()
La super
palabra clave utilizada dentro de una clase secundaria denota su clase principal. Por ejemplo,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( console.log("Creating student class"); // call the super class constructor and pass in the name parameter super(name); ) ) let student1 = new Student('Jack'); student1.greet();
Aquí, super
dentro de la Student
clase se refiere a la Person
clase. Por lo tanto, cuando Student
se llama al constructor de la Person
clase , también llama al constructor de la clase que le asigna una propiedad de nombre.
Método o propiedad primordial
Si una clase secundaria tiene el mismo método o nombre de propiedad que la clase principal, utilizará el método y la propiedad de la clase secundaria. Este concepto se denomina anulación de método. Por ejemplo,
// parent class class Person ( constructor(name) ( this.name = name; this.occupation = "unemployed"; ) greet() ( console.log(`Hello $(this.name).`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( // call the super class constructor and pass in the name parameter super(name); // Overriding an occupation property this.occupation = 'Student'; ) // overriding Person's method greet() ( console.log(`Hello student $(this.name).`); console.log('occupation: ' + this.occupation); ) ) let p = new Student('Jack'); p.greet();
Salida
Hola estudiante Jack. ocupación: estudiante
Aquí, la occupation
propiedad y el greet()
método están presentes en la Person
clase principal y en la Student
clase secundaria . Por lo tanto, la Student
clase anula la occupation
propiedad y el greet()
método.
Usos de la herencia
- Dado que una clase secundaria puede heredar todas las funcionalidades de la clase principal, esto permite la reutilización del código.
- Una vez que se desarrolla una funcionalidad, simplemente puede heredarla. No hay necesidad de reinventar la rueda. Esto permite un código más limpio y más fácil de mantener.
- Dado que también puede agregar sus propias funcionalidades en la clase secundaria, puede heredar solo las funcionalidades útiles y definir otras características necesarias.