class A
{
public void fun()
{
System.out.println("A");
}
};class B extends A
{
public void fun()
{
System.out.println("B");
}
public static void main(String args[])
{
B b=new B();
b.fun();//这我想调用A的fun()方法,有什么直接的方法?
}
};

解决方案 »

  1.   

    class A
    {
    public void fun()
    {
    System.out.println("A");
    }
    }class B extends A
    {
    public void fun()
    {
    System.out.println("B");
    }

    public void superFun() {
    super.fun();
    }

    public static void main(String args[])
    {
    B b=new B();
    b.fun();//这我想调用A的fun()方法,有什么直接的方法?
    b.superFun();
    }
    }
      

  2.   

    把new A().fun()加入到main中就可以了!
      

  3.   

    我的意思是用B的对象调用A的fun()
      

  4.   

    楼上的办法是可行的。
    JDK1.5验证
      

  5.   

    1.4中不行,1.5我不知道。呵呵。不过你可以用一下装饰模式(Decorator)。
      

  6.   

    楼上说哪个不行?2楼的?楼主的问题和JDK版本毫无关系:)
      

  7.   

    回复人: zhuqiang(zhuqiang) ( ) 信誉:100  2005-07-06 12:47:00  得分: 0  
     
     
       我的意思是用B的对象调用A的fun()直接在你的类B的fun方法中,调用super.fun()就可以了。这样下面的b.fun(),就不需要改了。
    public void fun()
    {
    super.fun();
    //System.out.println("B");
    }
     
      

  8.   

    我估计他说的误解是说楼主不打算改变b.fun(),这个调用。也就是说不打算加入新的方法了。
      

  9.   

    楼主的意思是想直接调用父类被覆盖的方法。呵呵,而不是再去修改子类。
    刚才我也看错了2楼的方法,呵呵,以为1.5里面有.super的pre-fix,所以才有1.4没有 这种说法。
      

  10.   


    “b=new B();
    b.fun();//这我想调用A的fun()方法,有什么直接的方法?”
    在C++中已经是调用A的fun()方法,所以实现多态性必须用virtul
    在JAVA中后继动态绑定,所以建议楼住还是才用二楼的蛮方法,或者创建A的对象再传递消息!
      

  11.   

    推荐:
    class A
    {
    public void fun()
    {
    System.out.println("A");
    }
    }class B extends A
    {
    public void fun()
    {
    System.out.println("B");
    }

    public void superFun() {
    super.fun();
    }

    public static void main(String args[])
    {
    B b=new B();
    b.fun();//这我想调用A的fun()方法,有什么直接的方法?
    b.superFun();
    }
    }