当一个类继承于另一个类,子类中没有父类的方法时。用子类的对象调用方法时,会首先在子类中查找,如果子类中没有改方法,再到父类中查找。
当一个方法只在父类中定义时,调用该方法时会使用父类中的属性。
如果该方法中又调用了其他方法,那么还是按照之前的顺序,先在子类中查找,再在父类中查找。
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