1. PHP / Говнокод #13886

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    class A {
        public function getUser() {
            .....
        }
        public function init() {
            ......
        }
    }
    
    class B extends A {
        ........
        // close some parent methods from outside
        public function getUser () {}
        public function init () {}
    }

    труЪ ООП: Инкапсуляция посредством полиморфизма!

    Запостил: ragnar, 02 Октября 2013

    Комментарии (9) RSS

    • Автор, для приличия, хоть бы экцепшн кинул из этих заглушек :)
      Ответить
      • Чегт, а я уже передал аффтару сцылку на мануал по областям видимости... =(
        Ответить
    • приватное наследование, php-way
      Ответить
    • вобще до этой инкапсуляции ещё и достучаться можно

      class C extends B{

      public function getUser () {
      A::getUser();
      }
      public function init () {
      A::init();
      }

      }

      вот только нахуй так жить ?
      Ответить
    • а зачем тогда наследоваться?
      Ответить
      • там было нцать методов, которые используются из B, но объявлены в A, я их вырезал. И классы переименовал. Во имя анонимности.
        Ответить
      • А в ПХП не собираются аннотации воодить (а то у всех есть, а у ПХП нет)? Мож человек готовился следы заметать? С молоду, так сказать.
        Ответить
        • Про аннотации не знаю, но генераторы вроде бы хотят воткнуть в php 5.5
          https://wiki.php.net/rfc/generators
          Ответить
    • - Похоже, нет сотрясения. Меня не тошнит, голова не кружится, так что всё нормально.
      Ответить

    Добавить комментарий