您的位置:首页 > 其它

继承 多态

2016-06-06 22:45 417 查看
<?php
//特性二
//继承:子类可以继承父类的一切
//特点:单继承

//父类
class Ren
{
public $name;
public $sex;
public $yvyan;

function Say()
{
echo $this->name."正在讲话!";
}
}

//美国人的子类
class America extends Ren
{
public $ziben;
//重写:子类对父类的方法进行重写
function Say()
{ //1.重写(非完全重写)追加 parent::方法,调用父类的Say()方法;
parent::Say();//调用父类的
echo "hello!";//这是子类自己的
}
}
//中国人的子类
class China extends Ren
{
public $shehui;
public $wumai;
//2.重写(完全重写,覆盖)
function Say()
{
echo "你好";
}
}
$a=new America();
$a->Say();
$c=new China();
$c->Say();
//var_dump($a);

//特性三
//多态
//条件:1.必须要继承。2.子类要对父类的方法进行重写。3.父类引用指向子类实例
//概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,父类引用在调用相应的地方的时候表现出来的不同。

//父类>子类,原理类似double a=10; double可以是整形,而int不能是浮点型,大类包含子类
/*用c#举例
Ren r=new China();
r->Say(); //你好
Ren r=new America();
r->Say(); //hello!*/

//在PHP语句中,多态表现不出来
$r=new China();
$r->Say();
$r=new America();
$r->Say();

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: