2016-12-09 2 views
0

Зачем нам нужно переопределять абстрактный метод, если вначале нет определения метода?Зачем нам нужно переопределять абстрактные методы из интерфейса?

Вот фрагмент проекта Android.

public class SampleClickListener implements OnClickListener { 
    @Override 
    public void onClick(View view) { 
     // custom implementation 
    } 
} 

OnClickListener представляет собой интерфейс с абстрактным методом onClick(). Таким образом, ранее не было определения метода. Что мы в первую очередь решаем?

С другой стороны, это может быть просто синтаксическая вещь. Могу ли я сказать, что я переопределяет даже без символа @Override, если я объявляю то же точное имя метода с таким же числом аргументов param с тем же типом?

Спасибо!

+1

Вы спрашиваете, почему '@ Override' не называется' @ Implement' на абстрактных методах? – shmosel

+1

@shmosel Ха, спасибо, что бросил эту мысль. Я ответил на этот вопрос через эту тему http://stackoverflow.com/questions/14869039/why-there-is-no-implements-annotation-in-java –

+0

@LeoKim: Это концепция наследования и абстракции. Возможно, вам придется переопределить определение функции в производном классе. Такая же терминология также применяется и в реализации интерфейса. – Vinodh

ответ

0

См. Здесь по умолчанию ваш идеал добавит этот метод к SampleClickListener, и вам нужно добавить реализацию кликов для вашего приложения здесь. Использование переопределения не требуется, но настоятельно рекомендуется. Он предупреждает вас, когда вы пишете функцию, которая, по вашему мнению, переопределяет другую, но вы что-то напутали.

0

Может быть ответом на это потому, что общественный класс SampleClickListener является отдельным классом, который перезаписать этот публичный недействительный OnClick (View вид) {// Заказной реализация}

Примечания OnClick является атрибутом для кнопочного типа ,

Смежные вопросы