// SUPERCLASSE
//abstract significa que esta classe não pode ser
//instanciada diretamente no objeto, apenas herdada
abstract class FormaGeometrica{
// indica que todas as subclasses devem implementar
// esse método
abstract calcular_area():number;
}
// criando subclasses / polimorfismo
// usou extends é obrigatório usar super();
class Quadrado extends FormaGeometrica{
constructor(private lado: number){
super();
}
calcular_area():number{
return this.lado * this.lado;
}
}
class Circulo extends FormaGeometrica{
constructor(private raio: number){
super();
}
calcular_area():number{
return Math.PI * this.raio * this.raio;
}
}
// OBJETO
// usou array[], usa forEach()
// new cria o objeto dentro do array[]
const formas:FormaGeometrica[]=[
new Quadrado(5),
new Circulo(3)
];
formas.forEach(forma => {
console.log(`Área: ${forma.calcular_area().toFixed(2)}`)
});
To embed this project on your website, copy the following code and paste it into your website's HTML: