我有类似的方法 //基类
public void foo(long A, long b,long c)
{
//Implementation 1
}
//Derived Class
public void foo(long AA,long b,long c)
{
//Implementation 2
}
我想这个设计有什么问题? 供参考: 我正在为我的设计使用代理模式
由于
答案 0 :(得分:5)
参数的名称无关紧要。运行时,java无法告诉您在给定时间调用哪种方法。要重载方法,签名必须不同,因此要么必须有不同数量的参数,要么参数必须是可区分的顺序,即String, int
和int, String
。
答案 1 :(得分:2)
覆盖或重载基于变量类型,但不基于变量名称(标识符)本身。因此,基本上两种方法都具有相同的签名void foo(long ,long ,long )
答案 2 :(得分:0)
由于您要为foo()添加子类实现,因此它也不错。因此,如果您需要更具体的实现而不是一般的超类实现,则必须覆盖它并在上面添加特定的实现。