class A {
double f(double x,double y) {
return x+y;
}
static int g(int n) {
return n*n;
}
}
class B extends A {
double f(double x,double y) {
double m=super.f(x,y);
return m+x*y;
}
static int g(int n) {
int m=A.g(n); //子類中類方法該怎么處理
return m+n;
}
}
public class Test5_3_3 {
public static void main(String[] args) {
B b=new B();
System.out.println(b.f(10.0,8.0));
System.out.println(b.g(3));
A a=new B();
System.out.println(a.f(10.0,8.0));
System.out.println(a.g(3)); //輸出結果:9 (不懂)
}
}
代碼如上,標注的那一行代碼我以為結果是“12”的,不太懂這個繼承子類中,類方法是咋回事?
uj5u.com熱心網友回復:
靜態方法只屬于類,沒有物件可言。你創建的B物件指向了A的參考,然后呼叫的是a中的靜態方法g(),不會呼叫B中的方法,a中的靜態方法不會被b重寫的uj5u.com熱心網友回復:
謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/234024.html
標籤:Java相關
