ruk·si

PHP
Abstract Class

Updated at 2013-05-15 22:40

This note is about abstract classes in PHP. Prefer interfaces over abstract classes.

abstract class Item {
    protected $price;
    protected $name;
    public function __construct($name) {
        $this->name = $name;
        $this->price = 0;
    }
}

class Sword extends Item {
    protected $attackPower;
    public function __construct($name, $attackPower) {
        parent::__construct($name);
        $this->attackPower = $attackPower;
    }
}

class Armor extends Item {
    protected $defensePower;
    public function __construct($name, $defensePower) {
        parent::__construct($name);
        $this->defensePower = $defensePower;
    }
}

$odin = new Sword('Odin Edge', 6);
$yggra = new Armor('Yggrassil Bark', 2);
var_dump( $odin );
var_dump( $yggra );