В более простых терминах вы можете переопределить любую функцию public
или protected
, которая существует в расширенном классе (ах). Сюда входят сеттеры и геттеры общедоступных свойств.
Код выше по сути бесполезен. В основном вы хотите использовать сеттеры и геттеры, когда хотите, чтобы что-то происходило на основе настройки свойства - например, когда вы устанавливаете свойство data
для itemRenderer
, вы хотите проверить данные, и если соответствует определенным критериям, вы хотите изменить стиль рендерера.
Вот пример того, как работает переопределение - что будет работать / что не будет работать:
package
{
public class SomeClass
{
public var someProp:Object; // can be overridden using setter and/or getter in sub-class
private var otherProp:Object; // cannot be accessed or overridden by sub-class
public function doSomething():void // can be overridden in sub-class
{
// ...
}
protected function doSomethingElse():void // can be overridden using in sub-class
{
// ...
}
private function doSomethingPrivate():void // cannot be accessed/called nor overridden in sub-class
{
// ...
}
}
}
package
{
public class SomeClassSub extends SomeClass
{
public var someProp:Object; // throws exception
private var otherProp:Object; // this will work
public function doSomething():void // throws exception
{
// ...
}
override public function doSomething():void // this will work
{
// ...
}
protected function doSomethingElse():void // throws exception
{
// ...
}
override protected function doSomethingElse():void // this will work
{
// ...
}
private function doSomethingPrivate():void // this will work
{
// ...
}
override private function doSomethingPrivate():void // throws exception
{
// ...
}
}
}