这篇文章主要为大家详细介绍了PHP5.0对象模型探索之抽象方法和抽象类的简单示例,具有一定的参考价值,可以用来参考一下。
对PHP5.0对象模型探索之抽象方法和抽象类感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
/**
* PHP5.0对象模型探索之抽象方法和抽象类
*
* @param
* @arrange 512-笔记网: q1010.com
**/
class bbb implements aaa{} (在bbb中覆写aaa中的抽象方法)
*/
Listing 6.13 Abstract classes
//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) //如果$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");
}
?>
/*** 来自四海网(www.q1010.com) ***/
本文来自:http://www.q1010.com/173/1223-0.html
注:关于PHP5.0对象模型探索之抽象方法和抽象类的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:对象模型
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。