Показать сообщение отдельно
Старый 16.05.2012, 11:02
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>> Почему в одном случае она переопределяется, а в другом нет? (пост #4)
такое есть предположение: инициализация дефолтовым значением (false в этом случае) просто опускается, ну и не переопределяется ничего
вот и для целых такая же картина
Код AS3:
public class A
{
	protected var n:int = 0;// на любое другое(кроме дефолтового нуля) поменяет
	public function A()
	{
		trace("A constr", n);
	}
}
Код AS3:
public class B extends A 
{
	public function B() 
	{
		n = 1;
		trace("B constr",n);
		super();
	}
}
имо, не стоит играться с этими вещами, во избежание таких фокусов, короче super в самый вверх и все будет строго, ага

Добавлено через 18 минут
или как вариант инициализировать так чтоб компилятор 'не знал' чем и не своевольничал, типа
Код AS3:
public class A
{
	protected var t:Boolean = initProp();
 
	public function A()
	{
		trace("A constr", t);
	}
	private function initProp():Boolean
	{
		return false;
	}
}
только опять же: а оно вам надо?