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