Этот вопрос задан из контекста ActionScript, но может быть и из контекста Java.
Код, который я использую в качестве примера, взят из adobe.com / devnet / flex / article / flex4_skinning.html . В приведенном ниже фрагменте кода класс NoteCard имеет состояние enabled и состояние disabled , которое он наследует от класса SkinnableComponent . Мой вопрос почему в активированном сеттере мы вызываем super.enabled = value; а не this.enabled = значение ;. Мы создали наш экземпляр объекта NoteCard из конструктора, и тогда мы не сможем установить значение enabled member, используя ключевое слово "this". Если вы поменяете местами super на , это , компилятор не выдаст никаких ошибок, но код не будет работать.
package
{
import spark.components.supportClasses.SkinnableComponent;
public class NoteCard extends SkinnableComponent
{
public function NoteCard()
{
super();
}
override public function set enabled(value:Boolean) : void
{
if (enabled != value)
invalidateSkinState();
super.enabled = value;
}
override protected function getCurrentSkinState() : String
{
if (!enabled)
return "disabled";
return "normal"
}
}
}