黑马程序员技术交流社区

标题: 静态方法覆盖问题 [打印本页]

作者: IT人    时间: 2014-2-3 17:28
标题: 静态方法覆盖问题
严格来说语法上静态方法时允许被覆盖的,但是即使覆盖了,也会被隐藏,就是没有意义的。
所以就说静态方法不能覆盖例如:
class Fu{
public static String method(){
return "hello,world";
}
}
class Zi extends Fu
{
public static String method(){
return "good person";
}
}
class Test{
public static void main(String[] args){
Zi zi = new Zi();
System.out.println(zi.method);
}
}
打印的结果就是父类方法中的返回值
隐藏的底层原理是啥!请高手解答!!!
作者: IT人    时间: 2014-2-3 17:37
对不起,上边我说的有错误!打印结果是子类的!不是不能被覆盖么!还有为什么说被隐藏
作者: 遗忘    时间: 2014-2-3 19:48
若父类的static 方法,子类可以访问时,则:能继承,但不能重写(重写只针对非static方法)。
即使在子类中有一个与父类具有相同方法标签(方法名相同,参数类型相同,返回值类型相同,甚至连访问级别也相同),也只能说明是对子类又新建了一个与父类同名的静态方法,而不是对父类的静态方法的重写.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2