переопределить метод - PullRequest
       18

переопределить метод

2 голосов
/ 19 февраля 2012

Если я хочу переопределить следующий метод:

public Machine makeMachine(String machineName, int machineSize)
{
  return new Machine(machineName, machineSize);
}

С:

public Machine makeDramaticMachine(String machineName, int machineSize)
{
  return new DramaticMachine(machineName, machineSize);
}

Это будет правильно?

Ответы [ 3 ]

6 голосов
/ 19 февраля 2012

Нет, не будет, так как вы изменили метод «подпись». имя метода и список его параметров должны быть неизменными, чтобы это было истинным переопределением. Всегда используйте аннотацию @Override, чтобы проверить, являются ли ваши переопределения истинными переопределениями. e.g.:

@Override // always use this annotation just to be sure
public Foo myMethod(Bar baz) {
   // ... code in here
}

Используя аннотацию, вы заставите компилятор проверить, является ли переопределение истинным или нет, прежде чем запускать код.

5 голосов
/ 19 февраля 2012

Нет по определению.Переопределение метода означает реализацию метода с той же сигнатурой в подклассе.Ваш метод имеет другое имя, поэтому он не может переопределить первый метод.

2 голосов
/ 19 февраля 2012

Вы не можете переопределить, изменив имя.

...