За последние 24 часа нас посетили 49296 программистов и 1371 робот. Сейчас ищут 1102 программиста ...

Обычный класс как родитель

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

  1. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Тут я узнал что в тайпхинтинге можно указывать обычные классы(не интерфейсы и не абстрактные классы). У меня сразу назрел вопрос - зачем тогда нужны абстрактные классы ? Если можно наследоваться от обычного класса и его же указывать как уточнение для аргумента(в который можно будет передать потомков).
    Мне как бы привычней работать с абстрактными классами, но описанная выше идея теперь не даёт покоя.
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну сами по себе понятия абстрактный класс и интерфейс уже должны тебе намекнуть о своем назначении. ты описываешь как будет выглядеть модель некоего объекта и определяешь как с ним взаимодействовать. но при это не реализуешь собственно никакой начинки - алгоритма. для этого тебе нужно будет унаследовать и реализовать. в случае с обычным классом - ты сразу описываешь всё необходимое, не оставляя никаких неопределенностей. и потом через потомков добавляешь или меняешь функционал.

    а еще есть трейты.
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    ну все эти классы вообще нахрен не нужны, только мешаются :)
    но чем больше кода, тем сложнее в нем становится разбираться и ориентироваться, для этого и придумали классы и все что с ними связано, так же как и с MVC, человек видя слово модели или контроллер уже как то понимает что там примерно увидит.
     
  4. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Ну почему же, абстрактные классы вроде как рассчитаны на какую-либо реализацию. Общую для потомков(уже обычных классов).
     
  5. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и да и нет. ты можешь предложить алгоритм а можешь оставить только намек на него. обычный класс этого не позволит сделать.
     
  6. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Всё понял.
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    machetero, в абстрактном классе ты можешь создавать методы свойства как обычно. Но попытка создать его экземпляр приведет к ошибке.
     
  8. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Мы в контексте тайпхинтинга рассматривали.
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Я понял как контроль типа в функциях.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    В классическом ООП есть термин "виртуальный класс". Это вот то, о чем ты говоришь. Хотя в ПХП они не представлены в явном виде.