Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Java - Interfaces EX.1

Olá, copiei as classes dadas no enunciado porém está dando erro na hora de complicar, segue as classes e interface:

interface AreaCalculavel {
    double calculaArea();
}
 class Retangulo {

  private int largura;
        private int altura;

        public Retangulo(int largura, int altura) {
            this.largura = largura;
            this.altura = altura;
        }

        public double calculaArea() {
            return this.largura * this.altura;
        }
    }
public class teste {

  public static void main(String[] args) {
            AreaCalculavel a = new Retangulo(3,2);
            System.out.println(a.calculaArea());
        }
    }

Na classe de teste, o compilador recomenda que eu faça :

AreaCalculavel a = (AreaCalculavel) new Retangulo(3,2);

porém continua dando erro :

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types: Retangulo cannot be converted to AreaCalculavel
    at teste.main(teste.java:14)
1 resposta
solução!

Faltou você dizer a classe que a mesma deve implementar a interface.

Você deve fazer isso utilizando a palavra reservada implements, conforme o exemplo abaixo:

class Retangulo implements AreaCalculavel {

  private int largura;
        private int altura;

        public Retangulo(int largura, int altura) {
            this.largura = largura;
            this.altura = altura;
        }

        public double calculaArea() {
            return this.largura * this.altura;
        }
    }