谁能帮我解释一下这个Java程序,为什么会输出那种结果

public class A5 {
double f(double x,double y){
return x+y;

}
static int g(int n)
{
return n*n;}
}
public class B5 extends A5{
double f(int x,int y){
double m=super.f(x,y);
return m+x*y;
}
static int g(int n){
int m=A5.g(n);
return m+n;
}

}
public class E5 {

public static void main(String[] args) {
B5 b=new B5();
System.out.println(b.f(10.0,8.0));
System.out.println(b.g(3));

}

}
为什么结果是
18.0
12
。没办法理解,求助

    首先18是调用A5中的double f(double x,double y),因为在继承的时候根本就是没有修改这个函数。

    而12.0是调用A5的static  int g(int n),为m=3*3=9.在加上n=3,为12

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答