请大家进来看一下,书上所说的这个标题,是不是错误的?

donbaoma 2007-07-21 11:44:49
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");
}
}
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cursor_wang 2007-07-22
  • 打赏
  • 举报
回复
//但是,想问一下,在这个地方如何再调用超类的中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");
}
}
syhan 2007-07-22
  • 打赏
  • 举报
回复
书没错
magicwing50 2007-07-22
  • 打赏
  • 举报
回复
发表一下:
父类static方法,只能在子类用static方法覆盖。
父类非static方法,只能在子类用非static方法覆盖。
static方法是属于类的,可以通过“类名.static成员名”来调用。
非static方法是属于对象的,是通过对象来调用。
lanseliuying 2007-07-21
  • 打赏
  • 举报
回复
你这不叫覆盖,Java会认为子类里又写了一个和父类重名的静态函数而已,和父类那个是独立的,父子各有一个,你想用哪个都可以。
donbaoma 2007-07-21
  • 打赏
  • 举报
回复
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");
}
}
java0000000 2007-07-21
  • 打赏
  • 举报
回复
你运行了没有哦..老兄。。乱讲
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");
}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧