Цитата:
Сообщение от iNils
В NewCar написать
 Код AS1/AS2:
public static var speed:Number = Car.speed;
|
она и без этого берется из Car, если всефункции, использующие статическую переменную, в наследнике не переопределять.
Попробую еще раз объяснить.
Есть суперкласс Car:

Код:
class Car {
private static var speed:Number = 10;
public function Car () {
}
public function getSpeed ():Number {
return speed;
}
// + еще 25 функций, использующих speed;
}
Есть расширяющий класс NewCar:

Код:
class NewCar extends Car {
private static var speed:Number = 50;
public function NewCar () {
super();
}
/* тут надо что-то написать, чтобы не переписывать все
функции из Car, использующие speed, т.к. в таком варианте значение
speed берется из Car, а не из NewCar. Ибо, если переписать все
функции, то теряется сам смысл наследования */
}
Код фла-файла:

Код:
var car:Car = new Car();
var newCar:NewCar = new NewCar();
trace(car.getSpeed());
trace(newCar.getSpeed());
хочу добиться: 10 и 50.
2dimarik:
Цитата:
|
У каждого Car может быть своя speed. Но Вам виднее.
|
Вы сейчас мыслите категориями физической привязки моделей в каком-то приложении.
Постараюсь описать мой случай.
Есть две категории юнитов (два класса: один супер, второй наследник; или два наследника от одного супер - не важно) - "свои" и "враги", соответственно есть две группы юнитов по n штук в каждой. Эти две группы юнитов передвигаются по карте, каждой группе присуща своя скорость speed, задаваемая в собственном классе. Ну, а статической она является для того, чтобы изменив ее на уровне класса, вся группа получила новое значение (не во всех классах, а только в этом), иначе пришлось бы в каждом экземпляре менять скорость вручную.