class A
{
static void qq()
{
System.out.println("第一个qq");
}
public static void main(String args[])
{
B b=new B();
b.qq();
}
}
class B extends A
{
static void qq()
{
super.qq();//各位,书上说子类不能覆盖超类中的static方法,是不是说错了啊/我这个程序中覆盖了超类中的qq方法了只啊
//但是,想问一下,在这个地方如何再调用超类的中qq静态方法?
System.out.println("第二个qq");
}
}

解决方案 »

  1.   

    你运行了没有哦..老兄。。乱讲
    class A
    {
    void qq()
    {
    System.out.println("第一个qq");
    }
    public static void main(String args[])
    {
    B b=new B();
    b.qq();
    }
    }
    class B extends A
    {
    void qq()
    {
    super.qq();

    System.out.println("第二个qq");
    }
    }
      

  2.   

    java00000 你什么意思啊?最讨厌你这种看不清楚问题,乱讲话的人:
    你把我下面的程序考过去试一下,(说明了子类能覆盖超类中的static方法,书上确实说错了)
    class A
    {
    static void qq()
    {
    System.out.println("第一个qq");
    }
    public static void main(String args[])
    {
    B b=new B();
    b.qq();
    }
    }
    class B extends A
    {
    static void qq()
    {
    System.out.println("第二个qq");
    }
    }
      

  3.   

    你这不叫覆盖,Java会认为子类里又写了一个和父类重名的静态函数而已,和父类那个是独立的,父子各有一个,你想用哪个都可以。
      

  4.   

    //但是,想问一下,在这个地方如何再调用超类的中qq静态方法?
    把super.qq()改成A.qq()就可以了.
    class A
    {
    static void qq()
    {
    System.out.println("第一个qq");
    }
    public static void main(String args[])
    {
    B.qq();//这里不new也行,因为是静态方法.
    A.qq();
    }
    }
    class B extends A
    {
    static void qq()
    {
    A.qq();
    System.out.println("第二个qq");
    }
    }
      

  5.   

    发表一下:
    父类static方法,只能在子类用static方法覆盖。
    父类非static方法,只能在子类用非static方法覆盖。
    static方法是属于类的,可以通过“类名.static成员名”来调用。
    非static方法是属于对象的,是通过对象来调用。