Interface [RESOLVIDO]

public class Quadrado implements AreaCalculavel {

	private int lado;
	public Quadrado(int lado){
		this.lado = lado;
	}

	public double calculaArea() {
		return this.lado * lado;
	}
}
public class Retangulo implements AreaCalculavel {

	private int altura;
	private int largura;

	public Retangulo(int altura, int largura) {
		this.altura = altura;
		this.largura = largura;
	}
	public double calculaArea() {
		return this.altura * this.largura;
	}
}
public interface AreaCalculavel {

	double calculaArea();
}
public interface AreaCalculavel {

	double calculaArea();
}
public class Teste {

	public static void main(String[] args) {

		AreaCalculavel aq = new Quadrado(4);
		System.out.println(aq.calculaArea());
		
		AreaCalculavel ar = new Retangulo(2, 3);
		System.out.println(ar.calculaArea());
	}
}

Porque que no System.out.println, ele chama calculaArea() da Interface e não de suas implementações. E como esses valores pararam lá ?

Atc.

Caro colega, vc apenas assina um contrato de implementação ou seja
significara q vc sera obrigado a implementar todos os métodos em uma determinada interface
interface n tem valores atribuídos , mas pode ter contastes !