package test3; abstract class fu { int age; int getage() { return age; } } class zi extends fu { int age; /* int getage() { return age; } */ } class test3 { public static void main (String[] args) { zi z = new zi(); z.age=3; int a=z.getage(); System.out.println(a); } }
目前的结果是 0
如果把注释取消,结果是3。
求老师指点迷津:
父类有方法,子类没有,我创建【子类对象】,为什么最后是0?子类不可以用父类的方法么?
对象是子类的,
但如果在子类也创了一模一样的方法, 结果就是3。
调用父类方法中的getage()方法返回的是父类中的age,方法查找变量的顺序是局部变量-->成员变量-->静态变量