Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   множественное наследование (http://www.flasher.ru/forum/showthread.php?t=110176)

Vidar 28.03.2008 15:44

множественное наследование
 
может знает кто вариант без "include" ?

etc 28.03.2008 17:22

Причем тут include?

Vidar 28.03.2008 17:27

мне пока известен только такой способ http://www.darronschall.com/weblog/archives/000245.cfm

badun 28.03.2008 17:53

Где ж тут множественное наследование? ))
В as3 как и в java можно наследоваться только от одного класса, зато реализовывать можно несколько интерфейсов.

Vidar 28.03.2008 18:22

ну не в чистом виде естественно но по крайней мере таким образом можно сэмитировать это: class ASprite extends Sprite extends A и в тоже время class AMovieClip extends MovieClip extends A

badun 28.03.2008 18:52

да я сообразил о чем речь, просто не вижу в этом смысла какого-либо))

etc 28.03.2008 18:55

Вообще говоря подобных ситуаций крайне желательно избегать. Но если таки случилось, то include в руки.

Vidar 28.03.2008 19:29

Цитата:

Сообщение от badun
да я сообразил о чем речь, просто не вижу в этом смысла какого-либо))

например можно обобщить в собственных подклассах методы которые используют только Sprite и MovieClip

etc 28.03.2008 19:53

Цитата:

Сообщение от Vidar
например можно обобщить в собственных подклассах методы которые используют только Sprite и MovieClip

MovieClip вообще-то от Sprite наследуется.

_Smirnoff 28.03.2008 19:54

Народ учите ООП.

Vidar 28.03.2008 23:19

Цитата:

Сообщение от __etc
MovieClip вообще-то от Sprite наследуется.

Подразумевалось чтото вроде этого :

Sprite
|
MySprite
|
|-------- Файл с общими методами
|
MyMovieCilp
|
MovieCilp

Иначе пришлось бы два одинаковых промежуточных класса создавать

CrazyFlasher 29.03.2008 00:24

include напоминает действие в QBasic - goto m1, это когда можно было скакнуть в любую строку кода :)

Stone 14.04.2008 10:15

а причем тут множественное наследование?
я про пример?

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

Sprite
|
MySprite
|
|-------- Файл с общими методами
|
MyMovieCilp
|
MovieCilp

а это вообще нереально. MovieCilp наследуется от Sprite. и никаких MySprite между ними воткнуть не получится.

да и всем извращенцам, типа меня, не понимающим принципов ООП (самокритика) ближе и родней способ использованный в mx.events.EventDispatcher уже многие годы назад.

ulik 14.04.2008 13:11

Цитата:

Сообщение от badun
да я сообразил о чем речь, просто не вижу в этом смысла какого-либо))

пример: есть "человек-бухарик" и "человек-дэбил", а теперь представьте, что у вас сосед "Вася" и "бухарик" и "дэбил".
Смысл иногда есть....
Имхо interfacы в руки...

Stone 14.04.2008 13:56

только когда в языке предусмотрено множественное наследование, есть возможность определять, что и как будет наследовать сосед Вася от "бухарик" и "дэбил".

а вот так?
есть у нас две ципочки наследования
A B
| |
A1 B1
| |
A2 B2

и как с помощью данного примера получить С от А2+B2 ???

ulik 14.04.2008 14:13

Interface. Они же абстрактные классы. Но напрямую не получится.

Iv 14.04.2008 14:25

Есть возможности языка и выстраивать структуру проекта исходя из возможностей других языков довольно странно.
Ну раз уж вы дошли до жизни такой, то я бы рекомендовал использовать композицию.
В схеме "Вася бухарик дебил" это будет выглядеть как класс Вася, содержащий два экземпляра классов "бухарик" и "дебил". С соответствующими интерфейсами. По дефолту проставлять экземпляры NullБухарик NullДебил.

Stone 14.04.2008 14:30

2 Iv
а с мувиками это прокатит?

2 ulik
пример можно?

Iv 14.04.2008 14:39

Stone, если ты конкретизируешь задачу, то и ответ получишь более конкретный.

Stone 14.04.2008 15:01

2 Iv
поторопился.
щас не получается даже вопрос задать.
подучусь - обязательно спрошу.

badun 14.04.2008 17:59

Цитата:

Сообщение от ulik
пример: есть "человек-бухарик" и "человек-дэбил", а теперь представьте, что у вас сосед "Вася" и "бухарик" и "дэбил".
Смысл иногда есть....
Имхо interfacы в руки...

Ты меня не верно понял. Я имел ввиду, что не понимаю зачем использовать include для создания какого-то подобия множественного наследования, все-равно наследования то никакого не будет. А если так понадобилось сделать, то это ошибка проектирования.
Множественное наследование же не так просто в джаве не ввели, это опасная штука.

ulik 14.04.2008 19:30

Опасная? Хм... На этот счет не могу согласиться. Неудобная (для меня) - это да. А вот опасности я не вижу.
А вот include - эт да. Лучше абстрактные классы использовать.

divinus 14.04.2008 20:22

хм, я не вчитывался в дискуссию, но исходя из вопроса, думаю вам поможет паттерн "Адаптер" (wrapper)... но я могу ошибаться...


Часовой пояс GMT +4, время: 22:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.