Cita: Pero por lo q tengo entendido se usa interfaz para no declarar una instancia de un objeto
Creo que no tienes los conceptos claros.
Una interfaz te sirve para acceder a una instancia/objeto de una forma concreta, como una referencia que apunta a un objeto/instancia de una clase que implementa la interfaz. Pero ese objeto ha sido creado en algún momento y con la clase que le corresponde, ya que una interfaz no se puede instanciar.
Cita: FiguraGeometrica f = new Cuadrado();
f.calculaArea()
y después me dice no mejor la del circulo
FiguraGeometrica f = new Circulo();
f.calculaArea()
No entiendo qué significa "me dice no mejor la del círculo".
Cita: Lo suyo como dice malenko seria:
public double calculaPrecio (FiguraGeometrica geom) {
return getPrecioM2()*geom.calculaArea();
}
¿Y qué tiene de distinto? A calculaPrecio le estás pasando una instancia de Círculo o Cuadrado, y la JVM decide si calculaArea() es la de Círculo o Cuadrado.
calculaPrecio en este caso es irrelevante.