Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida 4. Interfaces / Exercício 1

Boa tarde galera.

Estou com uma dúvida e se alguém puder me esclarecer, ficarei super agradecido.

Neste exercício na classe Teste está da seguinte forma:

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

Mas fiz da seguinte forma e deu a resposta:

class Teste {

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

Por que utilizar AreaCalculavel ao invés de Retangulo?

3 respostas
solução!

Oi Lincon,

nesse exemplo realmente não faz diferença nenhuma usar

Retangulo r = new Retangulo(3, 2);

ou

AreaCalculavel r = new Retangulo(3, 2);

Eu até prefiria a primeira opção! Mas agora imagine uma outra classe que deve somar todas areas independente de ser um Retangulo, Quadrado ou Circulo, algo assim:

classe CalculadorArea {

    private double somaArea;

    public void soma(AreaCalculavel area) {
        this.somaArea += area.calculaArea();
    }

    public double getSoma(){
        return this.somaArea;
    }
}

Repare que é importante usar a interface como parâmetro do método soma. Só assim podemos calcular usando um retangulo ou quadrado ou circulo. Podemo somar tudo que é uma AreaCalculavel.

Ficou mais claro?

abs

Olá Lincon! Utilizando AreaCalculavel ao invés de Retangulo você põe em prática o uso do Polimorfismo, sendo um exemplo de boa prática de Orientação a Objetos.

Espero ter ajudado! Bons Estudos!

Nico e Romário,

muito obrigado! Esclareceram tudo!

Abs!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software