Форум 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=136131)

proxiServer 10.02.2010 17:18

Множественное наследование
 
Хочу наследоваться от нескольких классов. Бред?

Класс наследуется от MovieClip. А если я хочу еще EventDispatcher добавить, что бы мой объект и клипом был и события свои отправлял?

iflamberg 10.02.2010 17:22

Множественного наследования нет. Но на ваше счастье MovieClip уже наследует EventDispatcher.

udaaff 10.02.2010 17:22

MovieClip и так является EventDispatcher'ом.

proxiServer 10.02.2010 17:28

Спасибо. Не знал. )

А все-таки, как решать проблему, если мне нужен функционал нескольких классов? Организовывать владение экземплярами этих классов?

gloomyBrain 10.02.2010 17:33

Цитата:

Организовывать владение экземплярами этих классов?
Вы, видимо, имели ввиду - композиция? тогда да.

Волгоградец 10.02.2010 18:05

В примере с EventDispatcher можно через реализацию интерфейса IEventDispatcher добиться желаемого.

dimarik 11.02.2010 01:43

Цитата:

Сообщение от proxiServer (Сообщение 885328)
Хочу наследоваться от нескольких классов. Бред?

Здесь - да.

wvxvw 11.02.2010 02:08

Зато в AS3 есть множественное наследование для интерфейсов, вот только имплементить интерфейс прикрученый к классу нельзя :(

proxiServer 11.02.2010 10:39

Цитата:

Сообщение от wvxvw (Сообщение 885503)
Зато в AS3 есть множественное наследование для интерфейсов, вот только имплементить интерфейс прикрученый к классу нельзя :(

Эм, это как? Множественное наследование интерфейсов - это понятно. "имплементить интерфейс прикрученый к классу" - это не очень.

wvxvw 11.02.2010 13:11

Класс по-сути состоит из двух частей: интерфейс и реализация. Т.е. в других языках, на сколько я знаю в той же яве можно имплементить другой класс, т.е. пример (псевдокод):
Код AS3:

public class MyPoint extends Shape implements flash.geom.Point {
public function clone():Point { return new MyPoint(this.x, this.y); }
// остальная реализация Point пропущена

Код AS3:

var p:MyPoint = new MyPoint(100, 200);
var p1:MyPoint = new MyPoint(300, 400);
trace(Point.distance(p, p1);

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


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

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