Показать сообщение отдельно
Старый 21.08.2009, 11:22
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 6  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от 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());
Цитата:
Output:
10
10
хочу добиться: 10 и 50.

2dimarik:

Цитата:
У каждого Car может быть своя speed. Но Вам виднее.
Вы сейчас мыслите категориями физической привязки моделей в каком-то приложении.
Постараюсь описать мой случай.
Есть две категории юнитов (два класса: один супер, второй наследник; или два наследника от одного супер - не важно) - "свои" и "враги", соответственно есть две группы юнитов по n штук в каждой. Эти две группы юнитов передвигаются по карте, каждой группе присуща своя скорость speed, задаваемая в собственном классе. Ну, а статической она является для того, чтобы изменив ее на уровне класса, вся группа получила новое значение (не во всех классах, а только в этом), иначе пришлось бы в каждом экземпляре менять скорость вручную.
__________________
скриптограф