继承 多态

<?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();


?>

posted on 2016-06-06 22:45  一全  阅读(132)  评论(0编辑  收藏  举报

导航