本帖最后由 张豪杰 于 2013-3-6 13:19 编辑
子类继承父类,而且有相同的静态方法。
class Fu{
static void method(){
System.out.println("fu method");
}
}
class Zi extends Fu{
static void method(){
System.out.println("zi method");
}
}
class Practice {
public static void main(String[] args) {
Fu f = new Zi();
f.method();
}
}
这时候,子类方法无法覆盖。 “准确的讲此时只是子类对父类静态方法的隐藏(hide),子类的静态方法完全体现不出多态,就像子类字段隐藏父类的字段一样,在利用引用访问对象的字段或静态方法时,是引用类型(type)决定了事实上访问的是哪个字段,而非当前引用实际代表的是哪个类。因此,子类静态方法不能覆盖父类静态方法。”
想问大家的是,这里的引用类型决定访问的字段,为什么? |