这个方法在java中是否重载?

时间:2012-06-19 12:06:10

标签: java inheritance overloading

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

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

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

}

5 个答案:

答案 0 :(得分:3)

Nods的

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

class B extends A{
    @Override
    public void add(){
        // do stuff
    }
}

答案 1 :(得分:2)

B公开的API的角度来看,add方法已经存在,即使由超类提供也是如此。由于您使用不同的参数提供另一个add方法,因此这会重载。提供相同的签名本来就是最重要的。

答案 2 :(得分:1)

是的,这是方法重载。

答案 3 :(得分:0)

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

答案 4 :(得分: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(),因此可以肯定地说,即使在B中没有显式定义add(),该方法也可用,因此定义add(int a)可以考虑重载add()