<html> <body> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"> <style> body {font : 12px verdana; font-weight:bold} td {font : 11px verdana;} </style> </head> <?php abstract class AbstractInstrument { private $name; private $category; private $instruments = array(); public function add(AbstractInstrument $instrument) { array_push($this->instruments, $instrument); } public function remove(AbstractInstrument $instrument) { array_pop($this->instruments); } public function hasChildren() { return (bool)(count($this->instruments) > 0); } public function getChild($i) { return $instruments[$i]; } public function getDescription() { echo "- jeden " . $this->getName(); if ($this->hasChildren()) { echo " z?o?ony z:<br>"; foreach($this->instruments as $instrument) { echo "<table cellspacing=5 border=0><tr><td> </td><td>-"; $instrument->getDescription(); echo "</td></tr></table>"; } } } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } public function setCategory($category) { $this->category = $category; } public function getCategory() { return $this->category; } } class Guitar extends AbstractInstrument { function __construct($name) { parent::setName($name); parent::setCategory("gitary"); } } class DrumSet extends AbstractInstrument { function __construct($name) { parent::setName($name); parent::setCategory("perkusje"); } } class SnareDrum extends AbstractInstrument { function __construct($name) { parent::setName($name); parent::setCategory("werble"); } } class BaseDrum extends AbstractInstrument { function __construct($name) { parent::setName($name); parent::setCategory("b?bny"); } } class Cymbal extends AbstractInstrument { function __construct($name) { parent::setName($name); parent::setCategory("talerze"); } } $drums = new DrumSet("zestaw tama maple"); $drums->add(new SnareDrum("werbel")); $drums->add(new BaseDrum("du?y b?ben")); $cymbals = new Cymbal("zestaw talerzy zildjian"); $cymbals->add(new Cymbal("ma?y talerz")); $cymbals->add(new Cymbal("du?y talerz")); $drums->add($cymbals); $guitar = new Guitar("gibson les paul"); echo "Lista instrument?w: <p>"; $drums->getDescription(); $guitar->getDescription(); ?> </body> </html>
kubik1988elk