我有这个代码,它的返回语句没有被覆盖。输出20,为什么会这样?任何关于此的解释都会有所帮助。
class Rectangle {
public int area(int length, int width){
return length*width;
}
}
class Square extends Rectangle{
public int area(long length, long width){
return (int) Math.pow(length, 2);
}
}
public class JavaApplication36 {
public static void main(String[] args) {
Square r = new Square();
System.out.println(r.area(5, 4));
}
}
答案 0 :(得分:2)
因为方形区域不会覆盖矩形区域。他们的签名是不同的。区域方法类型不同。将@override添加到Square area方法之上,您将无法再编译,但会收到错误消息,告诉您不是要覆盖该方法。