參考文章 :傳送門
當一個類繼承於另一個類,子類中沒有父類的方法時。用子類的對象調用方法時,會首先在子類中查找,如果子類中沒有該方法,再到父類中查找。
當一個方法只在父類中定義時,調用該方法時會使用父類中的屬性。
如果該方法中又調用了其他方法,那麼還是按照之前的順序,先在子類中查找(使用子類的屬性),再在父類中查找(使用父類的屬性)。
package Temp;
class A {
int x = 6;
private int y = 2;
public A(int a) {
x = a;
}
int getz() {
int z;
z = x / y;
return z;
}
void show() {
System.out.println("x=" + x);
System.out.println("y=" + y);
System.out.println("z=" + getz());
}
}
class B extends A {
int x = 3, y = 5, z;
public B(int a) {
super(a);
}
int getz() {
z = x + y;
return z;
}
}
public class Temp {
public static void main(String[] args) {
A num1 = new A(10);
B num2 = new B(9);
num1.show();
num2.show();
}
}
輸出結果:
x=10
y=2
z=5
x=9
y=2
z=8