你好我必须让青蛙抓飞。我已经获得了他们将用于测试方法的代码,他们将使用两者
catchFly();
catchFly(3);
如果发生这种情况,是否有办法满足这两种可能性,因为我不知道如何检查是否存在参数
public void catchFly()
{
super.catchFly();
account.credit(100);
super.yellow();
super.jump();
super.green();
}
答案 0 :(得分:0)
是的,方法重载是可能的,
的名称只需定义另一个具有相同名称但其他参数的方法(请参阅什么是方法的签名)
public void catchFly(int whatEver){
super.catchFly();
account.credit(whatEver);
super.yellow();
super.jump();
super.green();
}
答案 1 :(得分:0)
首先定义需要参数的方法:
public void catchFly(int value) {
super.catchFly();
account.credit(value);
super.yellow();
super.jump();
super.green();
}
当值已知时可以使用:
catchFly(3);
然后,对于值未知的情况,定义一个提供硬编码默认值的重载:
public void catchFly() {
catchFly(100);
}
你可以不用争论地打电话:
catchFly();
在这种情况下,重载通常是传递方法,它调用主逻辑方法,只需在需要时提供默认值。