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方法不可以被重写,不懂,希高人指点。
        

解决方案 »

  1.   

    请大家到我的计算机论坛看看,随便给提点意见,人多力量大嘛,注册一下,回答几个一直我都不会的问题,肯定我会给大家奖励的,网址是,http://java.cc.topzj.com/
      

  2.   

    楼上老师弄错了吧...覆盖才是用在父子类之间...重载可以用于同一个类的所有方法.也包括从父类继承的方法===========
    这个地方我也没有说太清楚...子类定义和父类的静态,其实是在子类中隐藏父类的静态方法..子类隐藏父类的静态方法和子类覆盖父类实例方法还是有区别的.区别在:运行时..JAVA 虚拟机把静态方法和所属的类绑定,而把实例方法和所属的实例绑定...
      

  3.   

    举个例子让你更明白;======
    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
      

  4.   

    我总结一下上面说说的:重写:只有继承了父类的,才可以。 它具有以下特点:1.参数列表必须与被重写的方法参数列表一致。
    2.返回类型必须与方法中的返回类型一致。
    3.访问级别的 限制不可以比父类中的强。(可以比他弱)
    重载:
     在同一一个类中,参数与返回的只不同,方法名相同。
    静态的:   由于静态的在内存空间只有一份,所有不可以被重写.
    以上写的不知道大家是否满意。
    由空加376140058,讨论Java
      

  5.   

    重载方法:通过在同一个类中用相同的名字定义多个方法,来重载方法。jvm是根据参数数量和参数类型来判断调用哪个方法,但不可以用返回值来区分。
      

  6.   

    tomkai:你好!
    你写的关于的重载的问题,通过看了你的那个方法我基本上明白了啊!谢谢!
    但是我还有一个问题:Father son1 = new Son();//声明为Father类,son1静态方法和Father类绑

    向上转型还有什么别的好处吗?
      

  7.   

    方法重写:在类层次中,当一个子类中的方法与其超类中的方法具有同样的名称和类型声明时称子类中的方法重写了超类中的方法,从子类中调用重写方法时,它总是引用由该子类定义的方法,而超类中定义的同名同类型方法将被隐藏,要访问被重写的超类版本,可以通过super来做到这一点方法重载:如果两个方法同名不同类型,那么两个方法就是重载了
      

  8.   

    这个应该不是重写和覆盖 static方法是属于类的方法 而不是属于对象
      

  9.   

    本来想写一个测试方法,可惜让tomkai(我不是苹果) 抢先了。我不是苹果的这个例子很好的测试了static 方法是不能被子类所覆盖的。多态是覆盖的表现。