oop — OO и PHP, используя абстрактный и интерфейс

Похоже, я что-то здесь упускаю. Я не понимаю, для чего они хороши?
Значение: простое наследование между классами, может дать одинаковые результаты или нет ?!

И, если быть более точным:
Interface это — как я понимаю — список имен функций. и больше ничего.
Итак, какова добавленная стоимость?

Относительно AbstractКажется, что это простой класс, который вообще не может быть создан, и все его использование — заставить дочерние классы наследовать некоторые методы.
Опять же — что такое добавленная стоимость?

Оба поведения могут быть достигнуты с помощью регулярных классов. или просто избегать этого (когда дело доходит до Interface объект)

также, пожалуйста, не указывайте мне дубликаты, я прочитал их все. они объясняют, что является абстрактным и интерфейсным, но не отвечают на мой вопрос.

Благодарю.

0

Решение

Абстрактное наследство

Утка это животное

Интерфейс — это контракт

Утка реализует плавать, утка реализует летать

У утки должны быть любые методы, абстрактные в Animal, и все методы, перечисленные в Swim and Fly.

  • Обновить

Насколько я понимаю, это простой способ абстрагироваться дальше, чем модель наследования. Рефераты машин и животных могут иметь свои собственные абстрактные методы, детализирующие некоторые элементы движения.

Или же определенные дочерние классы, которые знают, что они могут летать или плавать, могут сами реализовать интерфейс.

Самолеты и утки имеют много общих требований к полету. Подходящая посадочная зона для взлета / взлета, средство для предотвращения столкновения, как определить высоту, как определить близость к другим объектам того же типа (утки, такие как близость, самолеты не)

В этом случае машины и животные — это две вещи, поэтому, возможно, мы просто наследуем объект от абстрактного, в котором есть методы полета и плавания, — но в конечном итоге вы можете в конечном итоге поддерживать немного странные вещи, такие как $ TheFish-> прогулка ()

Вместо этого, хотя мы могли бы сохранить модель наследования в чистоте и просто реализовать необходимый интерфейс, который ничего не знает об объекте, но может указывать объекту, как определить себя хорошо для цели (в данном случае полет / плавание).

1

Другие решения

Других решений пока нет …