Una propiedad en programación conocida como herencia , en virtud de la cual una clase puede derivar los métodos y propiedades de otra clase análoga a la relación padre-hijo en los seres vivos. Un niño hereda sus características de sus padres pero no funciona al revés. Además, de forma similar a la relación padre-hijo de los seres vivos, un hijo también puede tener sus propias propiedades además de las heredadas. En el contexto de la programación, la clase que se deriva de otras clases se conoce como clase derivada, sub o secundaria. Mientras que la clase de la que se deriva la característica se conoce como clase base, superior o array.
El concepto de herencia, sub y superclase es el mismo en todos los lenguajes de programación, la única diferencia es su implementación. El objetivo aquí es llamar a una función definida en la clase principal con la ayuda de la clase secundaria. Para obtener este resultado, se pueden utilizar los siguientes métodos enumerados.
Método de llamada directa : dado que una clase derivada tiene acceso a todas las características de su clase base, tiene mucho sentido usar el objeto de la clase secundaria para referirse a la función de la clase principal.
javascript
<!DOCTYPE html> <html> <head> <title>Calling parrent from child class</title> </head> <body> <script type="text/javascript"> class Parent { func1() { alert("inside func1() of class parent"); } func2() { alert("inside func2() of class parent"); } } class Child extends Parent { func3() { alert("inside func3() of class Child"); } } // Declaring objects // Parent's object let p1 = new Parent(); // Child's object let c1 = new Child(); // Calling func()1 using parent's object p1.func1(); // Calling func1() using child's object c1.func1(); </script> </body> </html>
Salida: dos veces aparecerá esa alerta, una vez usando el objeto del padre y otra vez usando el objeto del niño.
Uso del método super: la palabra clave super se usa en JS para llamar a funciones y constructores de la clase principal. Siempre que se menciona super en la clase secundaria, el compilador busca la función especificada en la clase principal. Esto se usa principalmente cuando las funciones están sobrecargadas y un determinado requisito solicita la versión principal de la función. También se usa para sobrecargar constructores.
javascript
<!DOCTYPE html> <html> <head> <title>Calling parrent from child class</title> </head> <body> <script type="text/javascript"> class Parent { func1() { alert("inside func1() of class parent"); } func2() { alert("inside func2() of class parent"); } } class Child extends Parent { // Overloaded function func1() { alert("inside func1() of class Child "); alert("calling func1() of parent class"); // Calling for parent's version of func1() super.func1(); } } let c1 = new Child(); // Call to func1() of child class // There the func1() will call func1() // From aprent using super c1.func1(); </script> </body> </html>
Producción:
Método de llamada y constructor: en este programa llamamos al método y al constructor de la clase secundaria.
javascript
<!DOCTYPE html> <html> <head> <title> Call method and constructor from child class </title> </head> <body> <script type="text/javascript"> class Parent { constructor(name) { this.name = name; } display() { alert("name: " + this.name); } } class Child extends Parent { constructor(name, num) { // Calling parent's constructor super(name); this.num = num; } display() { // Calling display() from parent super.display(); alert("num: " + this.num); } } let p1 = new Parent("a"); let c1 = new Child("b", 1); p1.display(); c1.display(); </script> </body> </html>
Producción:
Publicación traducida automáticamente
Artículo escrito por vanshikagoyal43 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA