<?php
  abstract class Object {
  }
  
  interface Drawable {
    public abstract function draw();
  }
  
  /**
   * Figure class
   */
  abstract class Figure extends Object implements Drawable {
    const MAX = 10;
    public $id;
    private $canvas;
    protected $img;
    public static $instance;

    public abstract function draw();

    /**
     * Constructor
     */
    protected function __construct($img) {
      $this->img = $img;
    }
  }

  echo "============================ OUTPUT ============================\n";
  try {
    $c= new ReflectionClass('Figure');
  } catch (Exception $e) {
    var_dump($e);
    exit(-1);
  }
  
  Reflection::export($c);
?>
