Class Base{
public static void stamethod(){
System.out.print( "Base ");
}
}
public class ItsOver extends Base{
public static void main(String[] args)
{
ItsOver so = new ItsOver();
so.stamethod();
}
public static void stamethod(){
System.out.print( "aMethod in staOver ");
}
}
这个我认为是Static被重写了,但是做过SCJP的考卷,答案是Static方法不可以被重写,不懂,希高人指点。
------解决方案--------------------
我补充楼上的。。
覆盖是用于父类和子类之间。。
重写是用在同一个类中。。有相同的方法名。。但参数不一样。。
------解决方案--------------------
举个例子让你更明白;
======
class Father{
void method(){
System.out.println( "method of father ");
}
static void staticMethod(){
System.out.println( "static method of father ");
}
}
public class Son extends Father{
void method(){
System.out.println( "method of son ");
}
static void staticMethod(){
System.out.println( "static method of son ");
}
public static void main(String args[]){
Father son1 = new Son();//声明为Father类,son1静态方法和Father类绑
定
son1.method();
son1.staticMethod();
Son son2 = new Son();
son2.method();
son2.staticMethod();
}
}
============
method of son
static method of father
method of son
static method of son