Для чего в PHP наследование?

  • Автор темы Автор темы _RVK_
  • Дата начала Дата начала
Наследование это именно то, что отделяет объектный подход от объектно-ориентированного!
 
Было бы время я бы сам всё запутал и на 10 страницах. Хочется книгу где вмести с PHP говорилось бы обо всех направлениях WEb и реализации этого в PHP. Когда написанно кратко то после прочтения получаешь больше вопросов чем ответов... И ответы на эти вопросы приходмтся искать самому путём тыка, да надоедая вам на форуме :)
 
Автор оригинала: young
Наследование это именно то, что отделяет объектный подход от объектно-ориентированного!
Понимание концепции в последнюю очередь сводится к навешиванию ярлыков.
 
Автор оригинала: Crazy
Вообще, печально, что в PHP нет доброй Smalltalk'овской возможности перехватывать обращения к несуществующим методам -- это единственное, чего бы я действительно хотел увидеть среди дополнений к PHP. Правда, в Delphi этого нехватает в куда больше степени (что, в принципе, и является причиной уродства VCL).
А c помощью Class/Object Functions не пробовал вывернутся?
 
Автор оригинала: ForJest
А c помощью Class/Object Functions не пробовал вывернутся?
У тебя есть идеи о том, как именно можно вывернуться? :)

Как максимум -- удалось написать функцию call_if_exists($object,$method,$defaultMethod,$arrArgs) ... Но это как-то некузяво...
 
Наследование нужно чтоб меньше заниматься писаниной ПХП-кода :)

а ООП - "тяжело в учении - легко в бою" :)
 
меньше заниматься писаниной ПХП-кода
Спорно. Одно запихнуть всё в один класс и другое написать класс а методы реализовывать в его потомках.
а ООП - "тяжело в учении - легко в бою"
Согласен. Мне всё легче и легче. Нет, серьёзно!
 
Автор оригинала: Diesel
Спорно. Одно запихнуть всё в один класс и другое написать класс а методы реализовывать в его потомках.
Нельзя ли подробнее на эту тему? :)
 
о нет! только без терминов!
смотри,
пишешь очень важный базовый класс, в котором чтото важное:
PHP:
class base_class {
  //любой из потомков должен содержать $sql
  var $sql;

  base_class(){
    // создаем объект $sql
    $this->sql = new sql_class();
    }

/* другие важные операции, которые в большинстве (или даже все) должны быть в потомках 
... */

}
 
Внимание, вопрос: а зачем писать в базовом классе эти важные операции, если они все равно будут в потомках? :)
 
Вопрос вполне конкретен.

Если метод нужен в каждом из потомков -- все понятно. А зачем писать его в базовом классе, если он нужен не в каждом потомке?

Hint: мы говорим о PHP, а не о C++ ...
 
Ну множественного наследования нет, и потому базовые
классы смешивать нельзя, значит базовый класс должен содержать "всё" и нужное и не очень :)
А вообще чтоб меньше заниматься писаниной кода, а больше времени тратить на проектирование. (Писаниной я обзываю "агрегацию", сорри :))
Да, еще вот "мысль". Кажись ООП сам по себе "избыточный", т.е. многое из существующего не используется в полной мере.
 
Сверху