<?php
/*
*
*面向对象的优势就在于类的复用,继承是类级别的复用,多态是方法级别的复用
*1:类的组合 类的继承
*/
//继承的例子
class person{
public $name="Tom";
public $gender;
static $money=20000;
public function __construct(){
echo '这是父类',PHP_EOL;
}
public function say(){
echo $this->name,"\tis",$this->gender,"\r\n";
}
}
class family extends person{
public $name;
public $gender;
public $age;
static $money=100000;
public function __construct(){
parent::__construct();//调用父类的方法
echo '这是子类',PHP_EOL;
}
public function say(){
parent::say();
echo $this->name,"\tis\t",$this->gender,",and is \t",$this->age,PHP_EOL;
}
public function cry(){
echo parent::$money,PHP_EOL;
echo "%>___<%",PHP_EOL;
echo self::$money,PHP_EOL;
echo "*^__^*",PHP_EOL;
}
}
$poor = new family();
$poor->name="Lee";
$poor->gender="female";
$poor->age=25;
$poor->say();
$poor->cry();
/*
*这是父类
这是子类
Lee isfemale
Lee is female,and is 25
20000
%>___<%
100000
*^__^*
*/
?>
<?php
/*
*2014-3-23
*继承与组合的比较
*/
class car{
public function addoil(){
echo 'ADD Oil\r\n';
}
}
//类的继承
class bmw extends car{
}
//类的组合
class benz {
public $car;
public function __construct(){
$this->car=new car();
}
public function addoil(){
$this->car->addoil();
}
}
$bmw = new bmw();
$bmw->addoil();
$benz = new benz();
$benz->addoil();
/*
上边这两个比较组合显然增加的代码量,但是继承的最大缺点是相互依赖度太大,就是所说的高耦合
继承最大的有点就是扩展简单但是缺点大于有点,在设计的时候慎重考虑
*/
?>