java 新手小问题,望赐教
class A
{
static void area()
{
System.out.print("let us go!");
}
}
public class B extends A
{
static void area()
{
System.out.print("Hello World!");
}
public static void main(String args[])
{
A b=new B();//B b=new B();
b.area();
}
}
红线所示,输出结果分别是let us go!和Hello World!
为什么不同呢???
----------------解决方案--------------------------------------------------------
把static去掉,通过动态绑定来调用方法
静态方法直接用类名.方法名来调用
[
本帖最后由 xng1234 于 2011-3-28 19:24 编辑 ]
----------------解决方案--------------------------------------------------------
public class C extends A
{
static void area()
{
System.out.print("Hello World!");
}
public static void main(String args[])
{
C.area();
}
}
class A
{
static void area()
{
System.out.print("let us go!");
}
}在Java当中覆盖方法需要类型一样,而且在静态方法只能调用静态方法,其调用格式为类名.方法名
----------------解决方案--------------------------------------------------------
以上代码运行结果为:Hello World! 完成了覆盖方法的用意!
----------------解决方案--------------------------------------------------------
因为B继承A,所以先打印出let us go!,再打印Hello World!。
你只要B里重写area()方法
----------------解决方案--------------------------------------------------------
我是新手,求赐教。QQ61643380
----------------解决方案--------------------------------------------------------
回复 6楼 WilsonGZ
提示: 作者被禁止或删除 内容自动屏蔽