Define abstract class and provide implementation in PHP

Description

The following code shows how to define abstract class and provide implementation.

Example


/* w  w  w . jav  a2 s  .c  o  m*/
<?php
  //abstract root class
  abstract class Shape
  {
    abstract function getArea();
  }

  //abstract child class
  abstract class Polygon extends Shape
  {
    abstract function getNumberOfSides();
  }

  //concrete class
  class Triangle extends Polygon
  {
    public $base;
    public $height;

    public function getArea()
    {
      return(($this->base * $this->height)/2);
    }

    public function getNumberOfSides()
    {
      return(3);
    }
  }

  //concrete class
  class Rectangle extends Polygon
  {
    public $width;
    public $height;

    public function getArea()
    {
      return($this->width * $this->height);
    }

    public function getNumberOfSides()
    {
      return(4);
    }
  }

  //concrete class
  class Circle extends Shape
  {
    public $radius;

    public function getArea()
    {
      return(pi() * $this->radius * $this->radius);
    }
  }

  //concrete root class
  class Color
  {
    public $name;
  }

  $myCollection = array();

  //make a rectangle
  $r = new Rectangle;
  $r->width = 5;
  $r->height = 7;
  $myCollection[] = $r;
  unset($r);

  //make a triangle
  $t = new Triangle;
  $t->base = 4;
  $t->height = 5;
  $myCollection[] = $t;
  unset($t);

  //make a circle
  $c = new Circle;
  $c->radius = 3;
  $myCollection[] = $c;
  unset($c);

  //make a color
  $c = new Color;
  $c->name = "blue";
  $myCollection[] = $c;
  unset($c);
  foreach($myCollection as $s)
  {
    if($s instanceof Shape)
    {
      print("Area: " . $s->getArea() . "<br>\n");
    }

    if($s instanceof Polygon)
    {
      print("Sides: " . $s->getNumberOfSides() . "<br>\n");
    }

    if($s instanceof Color)
    {
      print("Color: $s->name<br>\n");
    }
    print("<br>\n");
  }
?>

The code above generates the following result.





















Home »
  PHP Tutorial »
    Language Basic »




PHP Introduction
PHP Operators
PHP Statements
Variable
PHP Function Create
Exception
PHP Class Definition