Typescript: Sobrecarga de Métodos

작성자

카테고리:

← 피드로
DEV Community · Yuri Peixinho · 2026-06-14 개발(SW)

Yuri Peixinho

Introdução

Subclasses podem substituir a implementação de métodos herdados usando override:

Sem override

class TransmissorBase {
  logar(msg: string): void {
    console.log(msg);
  }
}

class TransmissorReinf extends TransmissorBase {
  logar(msg: string): void {
    // sobrescreve, mas TypeScript não verifica
    console.log(`[REINF] ${msg}`);
  }
}

Enter fullscreen mode Exit fullscreen mode

Com override — recomendado

class TransmissorReinf extends TransmissorBase {
  override logar(msg: string): void {
    console.log(`[REINF] ${msg}`);
  }
}

Enter fullscreen mode Exit fullscreen mode

O override explícito faz o TypeScript verificar que o método realmente existe na classe pai — se você errar o nome, ele avisa:

class TransmissorReinf extends TransmissorBase {
  override lagar(msg: string): void { // ❌ erro — "lagar" não existe na base
    console.log(`[REINF] ${msg}`);
  }
}

Enter fullscreen mode Exit fullscreen mode

Chamando o método da classe pai com super

class TransmissorBase {
  protected logar(msg: string): void {
    console.log(`[BASE] ${msg}`);
  }
}

class TransmissorReinf extends TransmissorBase {
  override logar(msg: string): void {
    super.logar(msg);                   // chama o pai primeiro
    console.log(`[REINF] ${msg}`);      // depois adiciona comportamento
  }
}

Enter fullscreen mode Exit fullscreen mode

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다