Обобщение объектов с помощью родительского класса V Обобщение классов, реализующих общий интерфейс - PullRequest
0 голосов
/ 20 ноября 2011

Я извиняюсь, если мое сравнение кажется странным, но все еще пытаюсь очистить мои заблуждения ...

Возьмите этот пример DisplayObjectContainer.addChild (DisplayObject) -

, который можно передать в Sprite,Shape, MovieClip и т. д. - все они наследуют DisplayObject, поэтому их все можно добавить в список отображения.


Я хочу знать, не похоже ли это поведение на классы, которые реализуюттот же интерфейс.Я никогда не мог реализовать это в своих проектах, но изучал, что классы, которые реализуют одни и те же интерфейсы, могут по-разному использоваться вместо друг друга.Что может быть практическим примером для этого (аналогично тому, который я использовал выше для классов и подклассов)?

1 Ответ

1 голос
/ 20 ноября 2011

Ну, вы могли бы быть хорошим примером.Все ваши объекты могли бы реализовать IDisplayable с его методом Display.

И DisplayContainer мог бы быть набором IDisplayable.

Утка - это птица, утка может летать. Страус - птица, Страус - не может летать.птица, но может летать.

Так что, если вы внедрите Fly on Bird, вы должны сказать, что самолет - это птица .... Если вы внедрите Fly на FlyingThingy, вы должны сказать, что страус - это летающая вещь...

Если вы создадите интерфейс IFlier, а затем внедрите его для утки и самолета, теперь ваше описание будет точным.Я выбрал довольно очевидные классы здесь, но когда вы углубляетесь в чужой код или даже в свой собственный после нескольких месяцев занятий чем-то другим, чтение самолета - это птица или Страус. Флай сбивает вас с ног..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...