I m having a blackout here. I thought I understood these principles, but I can t seem to get it working anymore. I want to let a DeleteButton inherit from a general Button class. This DeleteButton should alter the protected padding values and have a static label. This is what I have:
public class Button
{
private var _labelText:String;
protected var _paddingX:Number = 10;
protected var _paddingY:Number = 5;
public function Button( labelText:String ):void
{
_labelText = labelText;
}
}
public class DeleteButton extends Button
{
public function DeleteButton():void
{
_paddingX = 5;
_paddingY = 2;
super( x );
}
}
Now, I thought the altered _paddingX and _paddingY values in the inherited class would bubble up to the super class. But they don t. The DeleteButton is still constructed with the default values of the super class. I can t figure out how to do it anymore. What am I missing here?
Thanks in advance.
Edit:
I guess I had AS3 s implementation mixed up with PHP s. This equivalent example in PHP is perfectly legal:
class Button
{
protected $_paddingX = 10;
protected $_paddingY = 5;
public function __construct( $label = )
{
var_dump( $label . : );
var_dump( $this->_paddingX );
var_dump( $this->_paddingY );
echo <br> ;
}
}
class DeleteButton extends Button
{
public function __construct()
{
$this->_paddingX = 5;
$this->_paddingY = 2;
parent::__construct( x );
}
}
$button = new Button( browse );
$deleteButton = new DeleteButton();
// this outputs:
string(7) "browse:" int(10) int(5)
string(2) "x:" int(5) int(2)