Похоже, я что-то здесь упускаю. Я не понимаю, для чего они хороши?
Значение: простое наследование между классами, может дать одинаковые результаты или нет ?!
И, если быть более точным:
Interface
это — как я понимаю — список имен функций. и больше ничего.
Итак, какова добавленная стоимость?
Относительно Abstract
Кажется, что это простой класс, который вообще не может быть создан, и все его использование — заставить дочерние классы наследовать некоторые методы.
Опять же — что такое добавленная стоимость?
Оба поведения могут быть достигнуты с помощью регулярных классов. или просто избегать этого (когда дело доходит до Interface
объект)
также, пожалуйста, не указывайте мне дубликаты, я прочитал их все. они объясняют, что является абстрактным и интерфейсным, но не отвечают на мой вопрос.
Благодарю.
Абстрактное наследство
Утка это животное
Интерфейс — это контракт
Утка реализует плавать, утка реализует летать
У утки должны быть любые методы, абстрактные в Animal, и все методы, перечисленные в Swim and Fly.
Насколько я понимаю, это простой способ абстрагироваться дальше, чем модель наследования. Рефераты машин и животных могут иметь свои собственные абстрактные методы, детализирующие некоторые элементы движения.
Или же определенные дочерние классы, которые знают, что они могут летать или плавать, могут сами реализовать интерфейс.
Самолеты и утки имеют много общих требований к полету. Подходящая посадочная зона для взлета / взлета, средство для предотвращения столкновения, как определить высоту, как определить близость к другим объектам того же типа (утки, такие как близость, самолеты не)
В этом случае машины и животные — это две вещи, поэтому, возможно, мы просто наследуем объект от абстрактного, в котором есть методы полета и плавания, — но в конечном итоге вы можете в конечном итоге поддерживать немного странные вещи, такие как $ TheFish-> прогулка ()
Вместо этого, хотя мы могли бы сохранить модель наследования в чистоте и просто реализовать необходимый интерфейс, который ничего не знает об объекте, но может указывать объекту, как определить себя хорошо для цели (в данном случае полет / плавание).
Других решений пока нет …