首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Static 方法是否可以被重写解决方案

2012-01-12 
Static 方法是否可以被重写ClassBase{publicstaticvoidstamethod(){System.out.print( Base )}}publicc

Static 方法是否可以被重写
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

热点排行