在下面的代码中,我可以说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 类中已经存在。创建具有相同名称但签名不同(即参数的数量、类型和顺序)的方法是重载。