Assim que uma classe herda de uma classe abstrata, ela deve:
Ilustraremos a herança de uma classe abstrata reestabelecendo a herança das classes Retangulo e Circulo em relação à Forma2. Para facilitar nomearemos essas classes de Retangulo2 e Circulo2.
public class Retangulo2 extends Forma2{ float largura; float comprimento; public Retangulo2(float largura, float comprimento){ this.largura=largura; this.comprimento=comprimento; } public float area(){ return largura*comprimento; } public float perimetro(){ return 2*largura+2*comprimento; } public void mostrar(){ System.out.printf("Retangulo %f x %f\r",comprimento, largura); } }
e
public class Circulo2 extends Forma2{ float raio; public Circulo2(float raio){ this.raio=raio; } public float area(){ return (float)Math.PI*raio*raio; } public float perimetro(){ return (float)Math.PI*raio*2; } public void mostrar(){ System.out.printf("Circulo de %f de raio\r",raio); } }