面向对象三大特性

面对对象三大特性
一:封装。目的:为了这个类更安全
a.将成员变量变为private;(私有)
b.在类里面做一个成员方法间接访问;
c.在该方法里面加限制条件

class Ren{
public $name;
public $sex;
public $birthday;
private $age;
public function setage($age){
if($age>18 && $age<50){
$this->age = $age;}
}
}
class Ren{
public function __set($name,$value){
$this->name = $value;
}
}
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 = ""
$r->setage(20);
如果是赋值语句用__set,
如果是取值语句用__get自动调用魔术方法
二:继承
概念:子类可以继承父类的一切
特点:单继承,一个子类只能有一个父类。一个父类可以有多个子类

class Ren{
public $name;
public $sex;
public function say(){
echo "人在江湖啊"
}
}
//extends继承的意思,如何继承。子类可以对父类的函数重写
class China extends Ren{
public $yuyan;
//**函数重写 override**
//**重载 overload**
public function test(){
echo "测试";
}
public function test($a){
echo "测试11111";
}
public function test($a,$b){
echo "测试22222";
}
public function say(){
//相当于调用父类里面的方法
parent::say();
echo "你好";
}
}
$c = new China();
$c->say();
$c->test(1,2);
为什么要使用父类来进行编程。
class suan{
public $a;
public $b;
public function jia(){
return $a+$b;
}
public function jian(){
return $a-$b;
}
}
三:多态:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法
的时候所表现出的不同,我们称为多态。
运行多态 编译多

原文地址:https://www.cnblogs.com/forqiwen/p/8258328.html