Fala, pessoal…
Uma dúvida sobre um comportamento de herança:
class Retangle {
}
public class Square extends Retangle {
public double area() {
return 0.0;
}
public static void main(String args[]) {
Retangle square = new Square();
System.out.println(square.area());
}
}
O código acima me dá o seguinte erro:
Square.java:13: error: cannot find symbol
System.out.println(square.area());
^
symbol: method area()
location: variable square of type Retangle
1 error
Alguém saberia me dizer porque o código exige a implementação do método area() na superclasse, tendo em vista que se ele for implementado ainda assim é o método da classe derivada que será invocado?