static 方法可以被覆写~~内部类不存在覆盖关系.

解决方案 »

  1.   

    静态方法可以被覆盖。
    静态内部类也可以被覆盖。class Father
    {
    Father()
    {
    System.out.println("Father constuctor");
    }

    public static void SF()
    {
    System.out.println("Father.SF()");
    }

    public static class InClass
    {
    public static int a=10;
    }
    }
    class Son extends Father
    {
    Son()
    {
    System.out.println("Son constructor");
    }

    public static void SF()
    {
    System.out.println("Son.SF()");
    } public static class InClass
    {
    public static int a=12;
    }

    }public class TFS
    {
    public static void main(String[] args)
    {
    Father f=new Father();
    Son s=new Son();
    System.out.println(Father.InClass.a);
    Father.SF();
    Son.SF();
    System.out.println(Son.InClass.a);

    }
    }
      

  2.   

    http://expert.csdn.net/Expert/topic/2909/2909008.xml?temp=.8779108
      

  3.   

    static 虽然可以写成被override,但实际上却没有被override
    你写几个例子就明白了
    所以说不能.
      

  4.   

    其实static并没有被override,上面的例子看上去是被override了,但实际没有,因为 static 只归他自己的当前类。他是隐藏的。
    static静态的不能被覆写,也不能重栽,所以它也不能实现多态。
    为什么呢?
    因为静态的是隐藏的,它只属于当前类用。所以楼主切记。
    无论是什么,只要是静态的,就符合此条件。
    如:
              class father{
                 
                      public static void  go(){system.out.println("fath");}
               }
             class son extend father{
                  public void go(){system.out.println("son");
              }
            public class example{
    public static void main(String[] args)
    {
    Father f=new Father();
    Son s=new Son();
    f.go();//他输出的是fath
                      s.go();    //输出  son  
    }   //他们自己输出自己的。     

              还有楼主需要记住一点,覆盖和重载判断标准是函数头,和参数表。
        并不是象: static,void ,private...等等。