多态
1.必须发生在继承下
2.子类对父类的方法进行重写
Class Ren { public $name; public function Say() { echo $this->name."正在说话"; } function __construct($n) { $this->name=$n; } //子类 class China extends Ren { public function Say() { echo "你好"; } } //父类引用指向子类实例,由于子类的不同,父类引用在调用方法时所表现出的差别 $ren =new China(""); //继承自父类,父类里面有一个function 里面必须有参数 $ren->Say();
function __tostring()//提供一个可以返回类里面信息的方法:
Class Ren { public $name; public function Say() { echo $this->name."正在说话"; } function __construct($n) { $this->name=$n; } function __tostring() //提供一个可以返回类里面信息的方法 { return "成员变量name的值为:".$this->name."<br>"."成员方法Say()的作用是。。。。"; } } $ren=new Ren("aa"); echo $ren;
完全克隆对象:
function __tostring() //提供一个可以返回类里面信息的方法 { return "成员变量name的值为:".$this->name."<br>"."成员方法Say()的作用是。。。。"; } } $ren=new Ren("aa"); $r1=clone $ren; var_dump($r1); echo $ren;
改变克隆对象的默认值:
function __tostring() //提供一个可以返回类里面信息的方法 { return "成员变量name的值为:".$this->name."<br>"."成员方法Say()的作用是。。。。"; } function __clone() //写在类里面,用克隆的时候自动调用 { $this->age=18; } }