继承 子类可以继承父类的一切
特点 单继承
class Ren
{
public $name;
public $sex;
public $yuyan;
function Say()
{
echo $this->name."正在说话";
}
}
//美国人的子类
class America extends Ren
{
public $ziben;
//重写:子类对父类的方法进行重写
function Say()
{
parent::Say();//调用父类里的方法,在输出自己的,这样就不会完全覆盖掉父类的方法
echo "hello";
}
}
//中国人子类
class China extends Ren
{
public $shehui;
public $wumai;
//重写
function Say()
{
echo "你好";
}
}
$a=new America();
$a->Say();
$c=new China();
$c->Say();
var_dump($a);
多态
条件:1, 必须要继承 2,子类要对父类的方法进行重写 3,父类引用指向子类实例
概念:当父类的引用指向子类的实例的时候,由于子类对父类的方法进行了重写,父类引用在调用相应的方法的时候表现出来的不同
//用c#举例
/*Ren r=new China();
r->Say();
Ren r=new America();//Ren可以去掉
r->Say();*/
<?php class YunSuan { private $a; private $b; function __construct($a,$b) { $this->a = $a; $this->b = $b; } function __set($n,$v) { if($v>0 && $v<100) { $this->$n = $v; } } function __get($n) { return $this->$n; } function He() { return $this->a + $this->b; } function cheng() { return $this->a * $this->b; } function Shang() { return $this->a/$this->b; } } $r = new YunSuan(1,2);