Neste tutorial, você aprenderá sobre a herança da classe JavaScript com a ajuda de exemplos.
Herança de classe
A herança permite definir uma classe que obtém toda a funcionalidade de uma classe pai e permite adicionar mais.
Usando a herança de classe, uma classe pode herdar todos os métodos e propriedades de outra classe.
A herança é um recurso útil que permite a reutilização do código.
Para usar a herança de classe, você usa a extends
palavra - chave. Por exemplo,
// 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();
Resultado
Olá Jack
No exemplo acima, a Student
classe herda todos os métodos e propriedades da Person
classe. Portanto, a Student
classe agora terá a name
propriedade e o greet()
método.
Em seguida, acessamos o greet()
método da Student
classe criando um student1
objeto.
Palavra-chave JavaScript super ()
A super
palavra-chave usada dentro de uma classe filha denota sua classe pai. Por exemplo,
// 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();
Aqui, super
dentro da Student
classe se refere à Person
classe. Portanto, quando o construtor da Student
classe é chamado, ele também chama o construtor da Person
classe, que atribui uma propriedade de nome a ela.
Método ou propriedade de substituição
Se uma classe filha tiver o mesmo método ou nome de propriedade da classe pai, ela usará o método e a propriedade da classe filha. Esse conceito é chamado de substituição de método. Por exemplo,
// 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();
Resultado
Olá aluno Jack. ocupação: estudante
Aqui, a occupation
propriedade e o greet()
método estão presentes na Person
classe pai e na Student
classe filha . Portanto, a Student
classe substitui a occupation
propriedade e o greet()
método.
Usos de herança
- Como uma classe filha pode herdar todas as funcionalidades da classe pai, isso permite a reutilização do código.
- Depois que uma funcionalidade é desenvolvida, você pode simplesmente herdá-la. Não há necessidade de reinventar a roda. Isso permite um código mais limpo e mais fácil de manter.
- Visto que você também pode adicionar suas próprias funcionalidades na classe filha, você pode herdar apenas as funcionalidades úteis e definir outros recursos necessários.