DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.ts馃拪| #31: Explica este c贸digo TypeScript

Explica este c贸digo TypeScript

Dificultad: Intermedio

驴Qu茅 esta mal en el siguiente c贸digo?

abstract class Auto {
  protected color: string;
  private puertas: number;

  constructor(color: string, puertas = 4) {
    this.color = color;
    this.puertas = puertas;
  }

  abstract logColor(): void;
}

class AutoElectrico extends Auto {
  private carga: number;
  constructor(color: string, carga: number, puertas = 4) {
    super(color, puertas);
    this.carga = carga;
  }
}

Enter fullscreen mode Exit fullscreen mode
  • A. No hay errores, todo funciona bien
  • B. AutoElectrico debe ser una clase abstracta
  • C. SintaxError, no existen los m茅todos abstractos en TypeScript
  • D. Tenemos que implementar de manera obligatoria el m茅todo logColor en la clase AutoElectrico

Respuesta

鉁 D. Tenemos que implementar de manera obligatoria el m茅todo logColor en la clase AutoElectrico

Cuando creamos un m茅todo abstracto debemos asegurarlo si o si de implementarlo en las clases que hereden dicho m茅todo.

Para solucionar eso podr铆amos a帽andir el m茅todo en cuesti贸n a la clase correspondiente:

class AutoElectrico extends Auto {
  private carga: number;
  constructor(color: string, carga: number, puertas = 4) {
    super(color, puertas);
    this.carga = carga;
  }
  // agregar esto soluciona el error
  logColor(){
    console.log("Soy un m茅todo abstracto...")
  }
}


Top comments (0)