За последние 24 часа нас посетили 41068 программистов и 1815 роботов. Сейчас ищут 807 программистов ...

Интерфейс implements

Тема в разделе "PHP для новичков", создана пользователем super-php, 4 апр 2013.

  1. super-php

    super-php Активный пользователь

    С нами с:
    8 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    Не работает почему то интерфейс

    Код (Text):
    1.  
    2. <?php
    3. interface A
    4. {
    5.     public function d();
    6. }
    7.  
    8. interface B
    9. {
    10.     public function m();
    11. }
    12.  
    13. class B implements A,B
    14. {
    15. public  function d(){
    16.     echo 'Привет!';
    17.     }
    18.    
    19. public  function m(){
    20.         echo 'Клоун!';
    21.     }
    22. }
    23.  
    24. $a = new B;
    25. $a->d();
    26. $a->m();
    27. ?>
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  3. super-php

    super-php Активный пользователь

    С нами с:
    8 мар 2013
    Сообщения:
    35
    Симпатии:
    0
    Исправил, вот второй пример. Пример с интерфейсом, по книге вроде должно пахать, но чего-то не пашет. Не получается расширить интерфейс, как в книге пишется что можно расширять.

    Код (Text):
    1.  
    2. <?php ## Множественное наследование интерфейсов.
    3. // Сущность: "материальный объект",
    4. interface IWorldObject {
    5. public function getCoord(); // возвращает координаты объекта
    6. // Обратите внимание, тело метода не указывается!
    7. }
    8. // Сущность: "устройство с колесами",
    9. interface IWheeled {
    10. public function getNumWheels(); // возвращает число колес
    11. }
    12. // Сущность: "транспортное средство". ВНИМАНИЕ: при расширении
    13. // интерфейсов нужно использовать ключевое слово extends, а не
    14. // implements! Конечно, допустимо множественное расширение.
    15. interface ITransport extends IWorldObject {
    16. public function getNumPassengers(); // максимальное число пассажиров
    17. }
    18. // "Запорожец" — это: транспортное средство с колесами, существующее
    19. //в материальном мире,
    20. class Zaporojets implements ITransport, IWheeled, IWorldObject {
    21. private $coordArray;
    22. public function getCoord() { return $coordArray; }
    23. public function getNumWheels() { return 4; }
    24. public function getNumPassengers() { return 16; }
    25. // Также нужно определить конструктор, деструктор и другие методы.
    26. }
    27. ?>
    Код (Text):
    1. Fatal error: Class Zaporojets cannot implement
    2.  previously implemented interface IWorldObject
    3.  in D:\server\super-php\test.ru\www\index.php on line 19
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    наверное не работает когда ты меняешь пример из книги, разве нет? )))
    тут прямо написано что нужно делать - убрать упоминание об одной хне в другой хне, т.к. та хня уже входит в состав примененных хней.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    именно так!