Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,502
#1

Задать свои @Override - Android

09.09.2014, 00:39. Просмотров 413. Ответов 9
Метки нет (Все метки)

Гуру, помогите... Еще один вопрос из серии "лень ради этого читать весь учебник"

Есть 2 класса - родитель и наследник.
Можно ли сделать так, что-бы в наследнике ОБЯЗАТЕЛЬНО были переопределены некоторые методы?
Сейчас сделал в родителе protected, а в наследниках public. Все работает, но...

Наследников у меня ОЧЕНЬ много (и будет еще больше) И некоторые методы ЗАБЫВАЮ вставлять...
А родительские изначально не подходят... Можно ли наследика "обязать" их подменивать? Как это делают интерфейсы? Вроде где-то встречал (возможно наследники вьювов)

Хотя-бы назовите название технологии - нет времени читать учебник на 300 страниц пока не дойдет - "о это именно то что я искал"!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
09.09.2014, 00:54     Задать свои @Override #2
Abstract class.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,502
09.09.2014, 02:16  [ТС]     Задать свои @Override #3
Спасибо, почитаю...
glnix
14 / 14 / 5
Регистрация: 08.04.2013
Сообщений: 75
09.09.2014, 08:14     Задать свои @Override #4
Не совсем уверен, что правильно вас понял, но может быть так?
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
09.09.2014, 11:25     Задать свои @Override #5
Tester64,

Java
1
2
3
4
5
public abstract class Parent {
 
public absract void mustBeOverridedMethod();
 
}
Java
1
2
3
4
5
6
7
8
public class Child extends Parent {
 
@Override
public void mustBeOverridedMethod() {
}
 
 
}
Паблито
резкий
1964 / 1699 / 526
Регистрация: 12.05.2014
Сообщений: 6,054
Завершенные тесты: 1
09.09.2014, 11:36     Задать свои @Override #6
Если надо обязательно переопределять методы родителя, то почему бы не делать все через интерфейсы?
Какой смысл писать метод в родителе, что бы потом его обязательно переопределить в наследнике?
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
09.09.2014, 11:46     Задать свои @Override #7
Паблито, это зависит от того, есть ли какая-то реализация в родителе.
Допустим, есть несколько классов-модулей доступа к API. Например,

LoginModule, RegistrationModule, etc.
И у них есть родитель, который делает запрос. Отличается только endpoint. Тогда почему в AbsractModule не сделать абстрактный метод abstract String getUrl(); который будет переопределяться.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,502
09.09.2014, 17:31  [ТС]     Задать свои @Override #8
Пока не понял как...
Написал свой адаптер. getView остался в родителе "закрытым", но из него вывел 2-5 методов для переназначения.
Если хоть один из них изменил должен изменить и остльные 4е - отдельно "что выводить", "куда выводить", "вывести" и др... Если хоть одно забыл - глобальная ошбка и ищу "ПЕРЕБОРОМ" забытый метод во всех наследниках... А хотелось бы что-бы без этого не компилировалось - выдавало ошибку на упущенных наследниках... Просто замечал что иногда некоторые классы без @Override не работают даже без интерфесов. Но либо не могу вспомнить где именно, либо нет исходников родителя...
Слово abstract НЕ помогло. Ничего похожего пока не нашел.
Можете пример привести?
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
09.09.2014, 18:11     Задать свои @Override #9
Цитата Сообщение от Tester64 Посмотреть сообщение
Слово abstract НЕ помогло. Ничего похожего пока не нашел.
Можете пример привести?
Так есть же пример выше.
Абстрактного класса мало, методы которые нужно переопределять в наследниках, должны так же быть абстрактными.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2014, 20:41     Задать свои @Override
Еще ссылки по теме:

У кого свои приложения в play market Android
Свои компоненты в Preferences для выбора времени, даты, числа, цвета Android
Android Задать IP для Socket
Задать качество фотографии Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,502
09.09.2014, 20:41  [ТС]     Задать свои @Override #10
ой! пропустил как-то...
Но код не правильно сработал!
Ругается что у абстрактного метода не должно быть тела. Но без тела не будет работать предок без наследника...
Yandex
Объявления
09.09.2014, 20:41     Задать свои @Override
Ответ Создать тему
Опции темы

Текущее время: 22:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru