diff options
Diffstat (limited to 'oo/abstract.php')
-rw-r--r-- | oo/abstract.php | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/oo/abstract.php b/oo/abstract.php new file mode 100644 index 0000000..141f7b7 --- /dev/null +++ b/oo/abstract.php @@ -0,0 +1,27 @@ +<?php + +abstract class Polygon { + protected $sides = 0; + abstract protected function area(); + public function getSidesNum() { + return $this->sides; + } +} + +class Triangle extends Polygon { + private $width = 0; + private $height = 0; + function __construct($w, $h) { + /* parent::__construct(); perhaps abstract classes do not have a ctor */ + $this->width = $w; + $this->height = $h; + $this->sides = 3; + } + + public function area() { + return $this->width * $this->height * 1/2; + } +} + +$rightTri = new Triangle(4,4); +echo "area: {$rightTri->area()}, sides: {$rightTri->getSidesNum()}" . PHP_EOL; |