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");
}
}
{
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");
}
}
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");
}
}
你把我下面的程序考过去试一下,(说明了子类能覆盖超类中的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");
}
}
把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");
}
}
父类static方法,只能在子类用static方法覆盖。
父类非static方法,只能在子类用非static方法覆盖。
static方法是属于类的,可以通过“类名.static成员名”来调用。
非static方法是属于对象的,是通过对象来调用。