Показать сообщение отдельно
Старый 29.03.2012, 15:19
Mirror13 вне форума Посмотреть профиль Отправить личное сообщение для Mirror13 Найти все сообщения от Mirror13
  № 1  
Ответить с цитированием
Mirror13
 
Аватар для Mirror13

Регистрация: May 2010
Адрес: Ногинск
Сообщений: 56
По умолчанию Вопрос о наследовании статических переменных

Столкнулся с загадкой, связанной с наследованием в AS3. В базовом классе объявлена защищенная статическая переменная:
Код AS3:
public dynamic class View extends Sprite {
	...
	public static const LANG_RU:String = 'ru';
	public static const LANG_EN:String = 'en';
 
	protected static var _lang:String;
 
	static public function get lang():String 
	{
		return _lang;
	}
 
	static public function set lang(value:String):void 
	{
		_lang = value;
	}
	...
}
Задаем ей значение:
Код AS3:
View.lang = View.LANG_RU;
Пробую обратиться к ней в дочернем классе (наследуется непосредственно от View) без уточнения объекта:
Код AS3:
trace(_lang);
Значение выводится.

Но при этом если обратиться к ней как this._lang или super._lang - получаем undefined.

В связи с этим возникает вопрос: как наследуются статические переменные?