Переопределение методов с разными именами переменных - PullRequest
2 голосов
/ 09 марта 2012

У меня есть такие методы, как // Базовый класс

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

//Derived Class

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

Хотелось бы, что не так с этим дизайном? FYI: Я использую шаблон Proxy для моего дизайна

Спасибо

Ответы [ 3 ]

6 голосов
/ 09 марта 2012

Наименование параметров не имеет значения.Что касается времени выполнения, то у Java нет способа узнать, какой метод вы хотите вызвать в данный момент.Для перегрузки методов сигнатуры должны быть разными, поэтому либо должно быть разное количество параметров, либо параметры должны быть в различимом порядке, то есть String, int и int, String.

2 голосов
/ 09 марта 2012

Переопределение или перегрузка основаны на типах переменных, но не на самих именах переменных (идентификаторах). Итак, в основном оба метода имеют одинаковую сигнатуру void foo(long ,long ,long )

0 голосов
/ 09 марта 2012

Поскольку вы собираетесь добавить реализацию подкласса для foo (), это неплохо. Поэтому, если вам нужна более конкретная реализация, а не переходить к общей реализации суперкласса, вы должны переопределить ее и добавить туда конкретную реализацию, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...