Цитата:
То есть по факту, классы наследники мне пришлось оставить пустыми, потому как больше ничего поделать я с ними не могу.
|
Может они хотят что-то типа такого (хотя не факт):
Код AS3:
public class Enumeration
{
public function Enumeration()
{
}
private var _commonValue:*;
public function get commonValue():*// Это для обобщенных алгоритмов над всеми перечислениями
{
return _commonValue;
}
}
public class UintEnumeration extends Enumeration
{
public function UintEnumeration()
{
}
private var _value:uint;
public function set value(value:uint):uint
{
_value = value;
_commonValue = value;
}
public function get value():uint
{
return _value;
}
}
Цитата:
могу ли я в классах наследниках переписать так метод get value() чтобы он возвращал значения другого типа? Так как в данной ситуации, это могла быть единственная польза принесенная таким наследованием.
|
Пользу тут вообще искать сложно, они это, видимо, чисто ради примера сделали
На практике такой стиль не подводил(без всяких базовых классов - они практически бесполезны и с забиванием большого гвоздя на проверки создания не в том месте - они не от чего не защищают):
Код AS3:
public class UnitType
{
// Список всех значений (не всегда нужен, кстати)
public static const allUnits:Vector.<Unit> = new Vector.<Unit>();
public static const Unit1:UnitType = new UnitType(1);
public static const Unit1:UnitType = new UnitType(2);
public static const Unit1:UnitType = new UnitType(3);
private var _code:uint;
public function get code():uint
{
return _code;
}
public function UnitType(code:uint)
{
_code = code;
allUnits.Add(this);// заполнение списка
}
}
А громоздить сюда рефлексию - это лишние проблемы при дебаге и никакой пользы