Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите понять интерфейсы [3]
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Помогите понять интерфейсы

Страниц (3): « 1 2 [3]
 

31. Bio man - 27 Сентября, 2011 - 10:40:00 - перейти к сообщению
Stierus пишет:
Имелось ввиду, что нужно объявить его абстрактным и в дочернем классе дописать все недостающее. Если класс имплементит интерфейс - никакими уловками ты не заставишь его работать, не реализовав в этом классе все, что требует интерфейс.
ну а если какойто метод интерфейса вообще не нужен? Я понемаю, что абстрактный класс может реализовывать не все методы интерфейса и в дочерном классе уже не абстрактном методы не реализованые в абстрактном классе могут быть даже не обьявлены?
32. Stierus - 27 Сентября, 2011 - 10:48:46 - перейти к сообщению
Цитата:
Если класс имплементит интерфейс - никакими уловками ты не заставишь его работать, не реализовав в этом классе все, что требует интерфейс.
Что тут не понятно?
(Добавление)
Какая разница, нужно все или нет? Если ты подписался - то выполняй, не можешь выполнить (считаешь, что что-то не нужно) - не подписывайся. Это все равно, что заключить юридический договор, а потом отмазываться :"Ну это же не нужно"
33. LIME - 27 Сентября, 2011 - 10:58:06 - перейти к сообщению
Bio man пишет:
ну а если какойто метод интерфейса вообще не нужен?
тогда скорее всего и интерфейс не нужен ))
но если что можно просто реализовать метод интерфейса пустотой строкой в теле функции.
формально вы реализовали, а в методе пустота
34. Bio man - 27 Сентября, 2011 - 11:54:07 - перейти к сообщению
LIME пишет:
Bio man пишет:
ну а если какойто метод интерфейса вообще не нужен?
тогда скорее всего и интерфейс не нужен ))
но если что можно просто реализовать метод интерфейса пустотой строкой в теле функции.
формально вы реализовали, а в методе пустота
вот это я и имел ввиду. Метод интерфейса реализуем пустой строкой в абстрактном классе а в классе наследующем абстрактный класс можем уже и забыть о не нужных, т.е. пустых методах и даже не обьявлять их
(Добавление) наконец дошло, извеняюсь за мою тупость
35. Bio man - 27 Сентября, 2011 - 16:18:32 - перейти к сообщению
если наследуются абстрактные методы то они обезательно должны быть определены в классе потомке? если не определить абстрактные методы в наследнике то кидает ошибку. это нормально? Fatal error: Class doggy contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (dog::nm)
(Добавление)
сам разобрался, стоило внимательней прочитать мануал Улыбка
Цитата:
При наследовании от абстрактного класса, все методы, помеченные абстрактными в родительском классе должны быть определены в классе-потомке

 

Powered by ExBB FM 1.0 RC1