覆盖具有不同变量名称的方法

时间:2012-03-09 00:19:27

标签: java oop design-patterns

我有类似的方法 //基类

public void foo(long A, long b,long c)
 {
    //Implementation 1
 }

//Derived Class

public void foo(long AA,long b,long c)
  {
   //Implementation 2
  }

我想这个设计有什么问题? 供参考: 我正在为我的设计使用代理模式

由于

3 个答案:

答案 0 :(得分:5)

参数的名称无关紧要。运行时,java无法告诉您在给定时间调用哪种方法。要重载方法,签名必须不同,因此要么必须有不同数量的参数,要么参数必须是可区分的顺序,即String, intint, String

答案 1 :(得分:2)

覆盖或重载基于变量类型,但不基于变量名称(标识符)本身。因此,基本上两种方法都具有相同的签名void foo(long ,long ,long )

答案 2 :(得分:0)

由于您要为foo()添加子类实现,因此它也不错。因此,如果您需要更具体的实现而不是一般的超类实现,则必须覆盖它并在上面添加特定的实现。