---恢复内容开始---
面向对象三大特性
a封装
目的:为了让类更安全
1.将成员变量变为private
2.在类里面做一个成员方法来间接访问
3.在该方法里面加限制条件
class Ren{ public $name; public $sex; public $birthday; private $age; //将$age变量变为private public function setage($age){ //做一个方法间接访问年龄$age if($age>=18 && $age<=50){ //限制条件:18-50岁之间 $this->age = $age; } } public function getage(){ return $this->age; } public function __set($name,$value){ if($name=="age"){ if($value>=18 && $value<=50){ $this->$name = $value; } }else{ $this->$name = $value; } } public function __get($name){ return $this->$name; } } $r = new Ren(); $r->name = "张三"; $r->age = 20; //自动调用魔术方法__set echo $r->age; //自动调用魔术方法__get var_dump($r);
b继承
概念:子类可以继承父类的一切’
特点:单继承->一个父类可以有多个子类,一个子类只能有一个父类
class Ren{ public $name; public $sex; public function say(){ echo "人在讲话"; } } class China extends Ren{ public $yuyan; //函数重写 override //重载 overload public function say(){ //函数重写 //调用父类里面的方法 parent::say(); echo "你好"; } } $c = new China(); $c->say(); class Suan{ public $a; public $b; public function yunsuan(){ } } //父类规定了一个运算方法,在子类Jia中进行了重写 class Jia extends Suan{ public function yunsuan(){ return $this->a+$this->b; } }
c多态
当父类引用指向子类实例时,由于子类对父类的方法进行了重写,在调用该方法时所出的不同,称之为多态。
运行多态
编译多态 overload