Cursos / Jogos Digitais / Programação Orientada a Objetos / Aula
A herança funciona para os métodos durante a execução do programa, de maneira similar ao funcionamento para os atributos. A figura abaixo ilustra tal situação.
Quando o Objeto2 solicita a execução do metodoX() ao Objeto1, esse último inicialmente procura pelo método na própria classe C que o define. Caso não encontre, ele sai percorrendo sua árvore hierárquica. Nesse caso, em particular, o metodoX() é encontrado logo na primeira classe ancestral visitada, a ClasseB.
É um recurso que permite a uma subclasse ou classe filha fornecer uma implementação específica de um método que já é fornecido por sua superclasse ou classe mãe.
export class Transporte{
protected _capacidade: number;
public constructor(capacidade: number){
this._capacidade = capacidade;
}
public exibirInformacoes(){
console.log(`Capacidade: ${this._capacidade}`)
}
}
A classe Terrestre, por padrão, herda o método exibirInformacoes()
da classe Transporte. Porém, caso queira definir um comportamento específico, poderá sobrescrever o método, mantendo o mesmo nome e tipo de retorno. Assim, se um objeto da classe Terrestre chamar o método exibirInformacoes()
, será exibido o comportamento definido na classe Terrestre.
export class Terrestre extends Transporte{
private _numRodas: number;
public exibirInformacoes(){
console.log(`Rodas: ${this._numRodas}`)
}
}
Vejamos o exemplo abaixo, a classe terrestre especifica um comportamento próprio, porém garante o comportamento da classe mãe através do super.
export class Terrestre extends Transporte{
private _numRodas: number;
public exibirInformacoes(){
super.exibirInformacoes();
console.log(`Rodas: ${this._numRodas}`)
}
}
Versão 5.3 - Todos os Direitos reservados