Зачем нам нужно переопределять абстрактный метод, если вначале нет определения метода?Зачем нам нужно переопределять абстрактные методы из интерфейса?
Вот фрагмент проекта Android.
public class SampleClickListener implements OnClickListener {
@Override
public void onClick(View view) {
// custom implementation
}
}
OnClickListener
представляет собой интерфейс с абстрактным методом onClick()
. Таким образом, ранее не было определения метода. Что мы в первую очередь решаем?
С другой стороны, это может быть просто синтаксическая вещь. Могу ли я сказать, что я переопределяет даже без символа @Override
, если я объявляю то же точное имя метода с таким же числом аргументов param с тем же типом?
Спасибо!
Вы спрашиваете, почему '@ Override' не называется' @ Implement' на абстрактных методах? – shmosel
@shmosel Ха, спасибо, что бросил эту мысль. Я ответил на этот вопрос через эту тему http://stackoverflow.com/questions/14869039/why-there-is-no-implements-annotation-in-java –
@LeoKim: Это концепция наследования и абстракции. Возможно, вам придется переопределить определение функции в производном классе. Такая же терминология также применяется и в реализации интерфейса. – Vinodh