class Base
{
    public void foo();
}interface IBase
{
    public void foo();
}class D extends Base implements IBase
{
    public void foo()
    {
    }
}现在我需要在D中分别有两个方法来重载Base和IBase的foo,应当如何?

解决方案 »

  1.   

    你要实在要2个方法,那就给其中一个带上个参数,用的时候参数传null就是了。class Base
    {
      public void foo();
    }interface IBase
    {
      public void foo(Object b);
    }class D extends Base implements IBase
    {
      public void foo()
      {
      }
      public void foo(Object b)
      {
      }
    }
    D d = new D()
    d.foo();
    d.foo(null);
      

  2.   

    public abstract class Base
        {
            public abstract void foo();
        }    public interface IBase
        {
            void foo();
        }    public class D : Base, IBase
        {
            
            public override void foo()
            {
                MessageBox.Show("Base::foo");
            }
            public  void IBase.foo()
            {
                MessageBox.Show("IBase::foo");
            }
        }这是c#的方法c++也是类似 Base::foo IBase:foo,难道java没有相应的机制??
      

  3.   

    第一,你的 D 类相对于 Base 类来说,是重写。
    第二,你的 D 类相对于 IBase 接口来说,是实现。
    第三,你的 Base 类的 foo 方法不能没有内容,因为不是抽象方法。看来你确实没时间学java。你要重写Base的foo方法,同时实现IBase的foo方法,就像你写的那样就OK了,只要将Base类和其foo方法都弄成抽象的,或者在Base的foo方法里加点内容。不过我不大明白你要这样做的目的。还是说下你的实际需求,让大家看看怎么帮你解决。