2

在下面的代码中,我可以说class B有重载的add方法吗?

class A
{
   public void add()
     {
           //some code
     }

}
class B extends A
{
    public void add(int a)
     {
            // some code
     }

}
4

5 回答 5

3

点头

是的,这是方法重载的一个例子。方法覆盖的一个例子是,

class B extends A{
    @Override
    public void add(){
        // do stuff
    }
}
于 2012-06-19T12:07:37.203 回答
2

从 暴露的 API 的角度来看B,一个add方法已经存在,即使是超类提供的。由于您提供了另add一种具有不同参数的方法,因此这是重载。提供相同的签名将是压倒一切的。

于 2012-06-19T12:08:37.797 回答
1

是的,这是方法重载。

于 2012-06-19T12:12:27.070 回答
0

是的。考虑这个更直接的重载示例:

class A
{
   public void add()
     {
           //some code
     }

   public void add(int a)
     {
           //this method is overloading add() from within its own class
     }

}

现在,由于 B,在您的示例代码中扩展了 A,它继承了 add(),因此可以肯定地说,即使 add() 没有在 B 中明确定义,该方法也是可用的,因此定义 add(int a) 可能被认为是 add() 的重载

于 2012-06-19T12:23:00.393 回答
0

是的,你可以说类B重载了方法add()。由于public void add()继承,在 B 类中已经存在。创建具有相同名称但签名不同(即参数的数量、类型和顺序)的方法是重载。

于 2012-06-19T12:14:52.883 回答