Saltar al contenido principal
Curso/Interfaces y Clases/Herencia con Extends
Volver a Interfaces y Clases

Interfaces y Clases — Leccion 2

·15 min

Herencia con Extends

Interfaces y clases que extienden de otras.

Extends en Interfaces

Una interface puede heredar de otra usando extends.

typescript
interface Animal {
  nombre: string;
  edad: number;
}

interface Perro extends Animal {
  raza: string;
  ladra: boolean;
}

const miPerro: Perro = {
  nombre: "Rex",
  edad: 5,
  raza: "Labrador",
  ladra: true,
};
### Múltiples extends

```typescript
interface Volador {
  volar(): void;
}

interface Nadador {
  nadar(): void;
}

interface Pato extends Volador, Nadador {
  nombre: string;
}

const pato: Pato = {
  nombre: "Donald",
  volar: () => console.log("Volando"),
  nadar: () => console.log("Nadando"),
};

Extends en Clases

typescript
class Animal {
  nombre: string;
  constructor(nombre: string) {
    this.nombre = nombre;
  }
  hacerSonido(): string {
    return "...";
  }
}

class Perro extends Animal {
  raza: string;
  constructor(nombre: string, raza: string) {
    super(nombre);
    this.raza = raza;
  }
  hacerSonido(): string {
    return "Guau!";
  }
}

const perro = new Perro("Rex", "Labrador");
perro.hacerSonido(); // "Guau!"

Override de métodos

typescript
class Forma {
  area(): number {
    return 0;
  }
}

class Circulo extends Forma {
  constructor(private radio: number) {
    super();
  }
  area(): number {
    return Math.PI * this.radio ** 2;
  }
}

class Rectangulo extends Forma {
  constructor(private ancho: number, private alto: number) {
    super();
  }
  area(): number {
    return this.ancho * this.alto;
  }
}

Ejercicio pratico

Crea una interface Vehículo y una interface Eléctrica que extienda de ella.

exercise.ts
Loading...
Resultado

Haz clic en "Ejecutar" para ver el resultado...

Curso de TypeScript — Aprende desde cero