JavaScript | Herança básica

Digamos que tenhamos a seguinte classe, para criar um carro:

class Carro {
constructor(marca, modelo) {
this.marca = marca;
this.modelo = modelo;
}

desligar() {
return ‘Carro desligou’;
}

acelerar() {


This content originally appeared on DEV Community and was authored by Jose Juarez Junior

Digamos que tenhamos a seguinte classe, para criar um carro:

class Carro {
    constructor(marca, modelo) {
        this.marca = marca;
        this.modelo = modelo;
    }

    desligar() {
        return 'Carro desligou';
    }

    acelerar() {
        return 'Indo de 0 a 100 km/h em 10 segundos';
    }
}

Digamos que agora eu queira criar um outro tipo de carro. Um carro semelhante, mas que tenha o método "acelerar", com outra implementação:

class CarroVeloz {
    constructor(marca, modelo) {
        this.marca = marca;
        this.modelo = modelo;
    }

    desligar() {
        return 'Carro desligou';
    }

    acelerar() {
        return 'Indo de 0 a 100 km/h em 5 segundos';
    }
}

Veja que repetimos as classes, porém a única diferença entre elas, é o método "acelerar". Isso é totalmente válido para a linguagem. Porém é uma má prática. Se tivéssemos várias outras variações de carro, deveríamos ter consistência entre elas. Digamos que em uma mudança de regra de negócio, todos os tipos de carro deveriam receber como parâmetro de entrada, o ano. Teríamos que entrar em todas classes que são um tipo de Carro e adicionar esse parâmetro de entrada. É nesse cenário que temos a herança. Na herança, fazemos uma classe herdar propriedades e métodos de outra.
Assim aplicamos a herança em JavaScript:

class CarroVeloz extends Carro {
    acelerar() {
        return 'Indo de 0 a 100 km/h em 5 segundos';
    }
}

A herança é aplicada na classe que está recebendo a herença, para isso é usada a palavra-chave "extends" seguida do nome da Classe pai.
Veja que agora a classe "CarroVeloz" tem somente o método "acelerar", pois está sobrescrevendo ele, ou seja, tendo sua própria implementação. Porém através da herança, tem as propriedades "marca" e "modelo", além do método "desligar".


This content originally appeared on DEV Community and was authored by Jose Juarez Junior


Print Share Comment Cite Upload Translate Updates
APA

Jose Juarez Junior | Sciencx (2025-10-13T21:22:10+00:00) JavaScript | Herança básica. Retrieved from https://www.scien.cx/2025/10/13/javascript-heranca-basica/

MLA
" » JavaScript | Herança básica." Jose Juarez Junior | Sciencx - Monday October 13, 2025, https://www.scien.cx/2025/10/13/javascript-heranca-basica/
HARVARD
Jose Juarez Junior | Sciencx Monday October 13, 2025 » JavaScript | Herança básica., viewed ,<https://www.scien.cx/2025/10/13/javascript-heranca-basica/>
VANCOUVER
Jose Juarez Junior | Sciencx - » JavaScript | Herança básica. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/10/13/javascript-heranca-basica/
CHICAGO
" » JavaScript | Herança básica." Jose Juarez Junior | Sciencx - Accessed . https://www.scien.cx/2025/10/13/javascript-heranca-basica/
IEEE
" » JavaScript | Herança básica." Jose Juarez Junior | Sciencx [Online]. Available: https://www.scien.cx/2025/10/13/javascript-heranca-basica/. [Accessed: ]
rf:citation
» JavaScript | Herança básica | Jose Juarez Junior | Sciencx | https://www.scien.cx/2025/10/13/javascript-heranca-basica/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.