在下面的代码中,我可以说class B
有重载的add
方法吗?
class A
{
public void add()
{
//some code
}
}
class B extends A
{
public void add(int a)
{
// some code
}
}
在下面的代码中,我可以说class B
有重载的add
方法吗?
class A
{
public void add()
{
//some code
}
}
class B extends A
{
public void add(int a)
{
// some code
}
}
点头
是的,这是方法重载的一个例子。方法覆盖的一个例子是,
class B extends A{
@Override
public void add(){
// do stuff
}
}
从 暴露的 API 的角度来看B
,一个add
方法已经存在,即使是超类提供的。由于您提供了另add
一种具有不同参数的方法,因此这是重载。提供相同的签名将是压倒一切的。
是的,这是方法重载。
是的。考虑这个更直接的重载示例:
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() 的重载
是的,你可以说类B
重载了方法add()
。由于public void add()
继承,在 B 类中已经存在。创建具有相同名称但签名不同(即参数的数量、类型和顺序)的方法是重载。