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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите понять интерфейсы [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: не доходит мне
Bio man
Отправлено: 27 Сентября, 2011 - 10:40:00
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Stierus пишет:
Имелось ввиду, что нужно объявить его абстрактным и в дочернем классе дописать все недостающее. Если класс имплементит интерфейс - никакими уловками ты не заставишь его работать, не реализовав в этом классе все, что требует интерфейс.
ну а если какойто метод интерфейса вообще не нужен? Я понемаю, что абстрактный класс может реализовывать не все методы интерфейса и в дочерном классе уже не абстрактном методы не реализованые в абстрактном классе могут быть даже не обьявлены?
 
 Top
Stierus Супермодератор
Отправлено: 27 Сентября, 2011 - 10:48:46
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Цитата:
Если класс имплементит интерфейс - никакими уловками ты не заставишь его работать, не реализовав в этом классе все, что требует интерфейс.
Что тут не понятно?
(Добавление)
Какая разница, нужно все или нет? Если ты подписался - то выполняй, не можешь выполнить (считаешь, что что-то не нужно) - не подписывайся. Это все равно, что заключить юридический договор, а потом отмазываться :"Ну это же не нужно"
 
My status
 Top
LIME
Отправлено: 27 Сентября, 2011 - 10:58:06
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Bio man пишет:
ну а если какойто метод интерфейса вообще не нужен?
тогда скорее всего и интерфейс не нужен ))
но если что можно просто реализовать метод интерфейса пустотой строкой в теле функции.
формально вы реализовали, а в методе пустота
 
 Top
Bio man
Отправлено: 27 Сентября, 2011 - 11:54:07
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




LIME пишет:
Bio man пишет:
ну а если какойто метод интерфейса вообще не нужен?
тогда скорее всего и интерфейс не нужен ))
но если что можно просто реализовать метод интерфейса пустотой строкой в теле функции.
формально вы реализовали, а в методе пустота
вот это я и имел ввиду. Метод интерфейса реализуем пустой строкой в абстрактном классе а в классе наследующем абстрактный класс можем уже и забыть о не нужных, т.е. пустых методах и даже не обьявлять их
(Добавление) наконец дошло, извеняюсь за мою тупость

(Отредактировано автором: 27 Сентября, 2011 - 16:33:43)

 
 Top
Bio man
Отправлено: 27 Сентября, 2011 - 16:18:32
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




если наследуются абстрактные методы то они обезательно должны быть определены в классе потомке? если не определить абстрактные методы в наследнике то кидает ошибку. это нормально? Fatal error: Class doggy contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (dog::nm)
(Добавление)
сам разобрался, стоило внимательней прочитать мануал Улыбка
Цитата:
При наследовании от абстрактного класса, все методы, помеченные абстрактными в родительском классе должны быть определены в классе-потомке
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB