PHP5.0对象模型探索之抽象方法和抽象类

2019-04-07 19:27:43于丽

 }
}

//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) //如果$s是Shape类的实例
 {
  print("Area: " . $s->getArea() . "n");
 }

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

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

 print("n");
}

?>

您可能感兴趣的文章:

php抽象方法和抽象类实例分析PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)PHP中抽象类和抽象方法概念与用法分析PHP 抽象方法与抽象类abstract关键字介绍及应用php面向对象全攻略 (十二) 抽象方法和抽象类php中的抽象方法和抽象类
相关文章 大家在看