Наследование полезно для уменьшения объема переписываемого кода.Если у вас есть несколько классов с несколькими общими методами или полями, вместо того, чтобы определять эти методы и поля снова и снова, вы можете разложить их в базовый класс и заставить каждый из дочерних классов расширять этот базовый класс.
Интерфейсы(и implements
) полезны, когда вы хотите определить общий протокол для поведения группы объектов.Например, вы можете потребовать, чтобы сопоставимые объекты можно было сравнивать на предмет равенства и хэширования и т. Д.
Использование наследования в конечном счете является выбором дизайна.Будьте внимательны к случаям, когда вы определяете одни и те же методы для нескольких классов;это отличные случаи, когда вы можете выделить эти методы в базовый класс.То же самое относится и к классам, которые имеют одни и те же характеристики: вы можете гарантировать согласованность, поместив эти характеристики в интерфейс, который будет реализован соответствующими классами.
Наследование - это большая концепция в ООП, которая выходит далеко за рамки простогоPHP.Я рекомендую вам прочитать статью в Википедии о наследовании и, возможно, Шаблоны проектирования бандой четырех .
Я считаю, что ваше понимание наследования в основном верно.Следующим шагом будет использование его в производстве.